From 9bd99da647b470bb5a5ee8e386f1ae55d2ee270e Mon Sep 17 00:00:00 2001 From: "ananya.das" Date: Wed, 30 Oct 2024 18:27:24 -0700 Subject: [PATCH 01/14] commit --- README.md | 1 - __pycache__/nuscenes_utils.cpython-39.pyc | Bin 1797 -> 0 bytes .../frame_structure.cpython-312.pyc | Bin 7008 -> 0 bytes .../frame_structure.cpython-39.pyc | Bin 4998 -> 0 bytes .../nuscenes_utils.cpython-312.pyc | Bin 3241 -> 0 bytes .../__pycache__/nuscenes_utils.cpython-39.pyc | Bin 1816 -> 0 bytes .../test_frame_structure.cpython-39.pyc | Bin 2698 -> 0 bytes frames/condense_frames.py | 114 --------------- frames/frame_structure.py | 133 ----------------- frames/main.py | 40 ------ frames/nuscenes_utils.py | 48 ------- frames/readme.md | 57 -------- frames/requirements.txt | 1 - frames/test_frame_structure.py | 135 ------------------ frames/validate_condensing.py | 52 ------- testCoordinate.py | 40 ------ test_frame_manager.py | 76 ---------- 17 files changed, 697 deletions(-) delete mode 100644 README.md delete mode 100644 __pycache__/nuscenes_utils.cpython-39.pyc delete mode 100644 frames/__pycache__/frame_structure.cpython-312.pyc delete mode 100644 frames/__pycache__/frame_structure.cpython-39.pyc delete mode 100644 frames/__pycache__/nuscenes_utils.cpython-312.pyc delete mode 100644 frames/__pycache__/nuscenes_utils.cpython-39.pyc delete mode 100644 frames/__pycache__/test_frame_structure.cpython-39.pyc delete mode 100644 frames/condense_frames.py delete mode 100644 frames/frame_structure.py delete mode 100644 frames/main.py delete mode 100644 frames/nuscenes_utils.py delete mode 100644 frames/readme.md delete mode 100644 frames/requirements.txt delete mode 100644 frames/test_frame_structure.py delete mode 100644 frames/validate_condensing.py delete mode 100644 testCoordinate.py delete mode 100644 test_frame_manager.py diff --git a/README.md b/README.md deleted file mode 100644 index 112c809..0000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -# Frame-Based Monitoring diff --git a/__pycache__/nuscenes_utils.cpython-39.pyc b/__pycache__/nuscenes_utils.cpython-39.pyc deleted file mode 100644 index 230618e2b4b08d71f89db64a12141125cbc6d648..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1797 zcmZ8hOK&7K5OzPOAM?ycVzbMI3t}Xca6%jqVweziMK-&dgo`EAYT8b=hkj(;9>k&^ z35i_u4>%;pTsZJgxcY`T@fXkvQDx6eX0g@oD%ZoGtIC!3dJ%!~=O4eHzZ($p7c$$! z0p@e~nwPLJ!mNUn7PTy-?ZPe{>Xa^ZHSZK&=}}M9ZsAiObiATd1~e!`8kP}_EW%?R zGyhkcby#ra(k=^GbVX>7#jFeeK66jWxc4`lM(!*XoGeZ=Uh!sZtHCT~sd!Q6m7Es! zf~moA{?^7A^jRvo%u9YUc9efAQ@LnVG_7mF@(M(%dnD45KTE6hf{Qy_b$;NY$?Hm6 zrlPK8X5-nbfwTwT6uzbpizF>+EoL$M+5w=>$=TQuF$hE#7VYl4y5Ry11%~#H2( zql0f?yE%Z9tJmqlVVx~XUdiU*904^4)uPcCO%^gQn*Gby>Oo%RGEa;AC!VaOkRsA( zfR-2nomsG~2huKl8te`blH6D=YX~SE4 z8MXF}-#Xx_(?++BMP7YkG#P5fE6o@*yE3>5Wi*d(x-FUaTByQ3a%XT)Eb!s1c4OYGe;A<#{Z}}Q-e2unzjf}5XzqK96LVQ9!S%1$fodJvy)OS#% zGM5X+Ran&3g(k)5FOuIeY#>1?PFe5f~gF z&nCES07Qn-5QbXjlR3OxtSHsZ1c#@c=r}3o zf=ks;88f`bto$iPFBSNdX^0h`AarHdjdCwj`BJ%a=qu(8_fC1$)MCa{=ouH(zr>Ey z2z*)N9p&Ov6c6y=p25CL!|al#nUPfKrG!69T&eeY|G(O}j(1Nmisy!%d`h zs&rEl?}34M9~aEM&bbJIQcfd&2G;$3S9kOOZAAhyd=l}o! diff --git a/frames/__pycache__/frame_structure.cpython-312.pyc b/frames/__pycache__/frame_structure.cpython-312.pyc deleted file mode 100644 index b90270d9e150e8ff70ac5afb3e83c371141024bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7008 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 diff --git a/frames/__pycache__/frame_structure.cpython-39.pyc b/frames/__pycache__/frame_structure.cpython-39.pyc deleted file mode 100644 index 3bef880780f161915bca785d11b7b7e5bf1cdf14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4998 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 Oxn6~>S|z4`*8czk9V-I> diff --git a/frames/__pycache__/nuscenes_utils.cpython-312.pyc b/frames/__pycache__/nuscenes_utils.cpython-312.pyc deleted file mode 100644 index 1de431b0b6f3aae99fc43586b314891a7e65a438..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3241 zcmcInO>7&-6`m!R%O!XDCq}X)$`+H#iWt{2jM%Az`lqV?tVod^S+)b(3bW>}WHP%; zV|SU>>I%@oC}bdjF?QBV{OP$Vb9$|eKvLzs6=+D*M%d7RUxD&#GLO0~=NiW`ocMR9*{ZLs~c+)`YA8Hk=~LK}DQpW&Q@6 zjmV)JC>xc-@Qqz(Gs1Ud>AMW(C(GyZimsR$AC65)vSges6?AJ*EtO>)n<)IGBLnub zWGPlbQzkQh%$>6&t8C)%V5wxt1szma95EzKd0Wz@ImN)i4;8~Klyo{yGD;;Y?`s52 zngIO#@Y~u4pF7B6prK?Vn~|COzI#LqbPi?wlhYZ$A%I|r@S#&*DVd5vOftT0jY(EW zr+@s_q4S_M4}mNCb?MMhDPPtU-7*i&5)Ye=UN$KJxw2JI&HiiGak8Kntb(K#=9QeM zHR3QS>>n}{@L5EgLUMU@?dlWuD`B|84sSsx$~WByf$S{}?HDjSLo4nC0Ca?G*!d1< zW#2pmc&{-J4H}0C+NLFG*XD@n;*I_Rh&Bi;j+d?ctWnaM7O+8_36`p2k~z{wjF=^q z-&=;1w{lH8qYe5AisoMU&}gbck0bP~URWD<_8(2g@>%yrDd&(g3<{R4pEJ8f| zXk_2R_YU1C;`@Ss$M!K^3=6E)jJN3JJDH_H3jvFSLP_??zWe@r4f_So_7w@@yU6z2 ztR1kq`|Q2Od<#K2Fob4izz5#uA#ph3&xgo3?(sHHJq+2XND^ol$w52RTr~`5&ao`*h^IgeKcYb&?psKJZ`(S`9C3<|Fh4-2u9>sB!@h2!Sg?Qyd0vQ3(xgj zXnHPMt=<|%vcJ2?YWF&dogTN{7D*!PB3P50%UxuPa+vt!t?Nax5cw~VOYfQtL_1P^ z<=NhCH1*aOqbUoX2XO0&kOzN(Jc!y+55b*i+EI#T?73*hyr>r9)_%{c|0|mD=b)MR zAJI&_7|oA9elePM^qJhe%OX1ncTr>#2dvTuicaq#0uIy+UX`qZRhAVTQcLpe&!$oT(!4j?|w^RuEW~neU91aZ*yqz1FIx{(qdBXm7U~n8qo1M9d;gM+^+m@%s zMo&-Uh-d2RsXZB)bJZ-=CpN*A{@C`aKLp_FzJ*uFR<7UXimX)xhi+>RPyl1xtg#mP(|G3sVjN< zMhP3_(c;c1xO`)nE4ag4etVcnuI2PImd|*bqfU|+~ROOirTL;PZ1Y5%`6Eup>4T$wQZ%}5&CK=SYhSl+5so^ z#?nNsbKfU@D}Adc9{h5>^VHIKP3)+OeU8|-*7@kdVPTOHvwYB5UySLw6*48eqx4yX) z-b}q#O&xJkM;=W*zWDIsY z&uaEjTlMg;b9lHida*kCo-_L12A}(ukKKyhj8)oCe8r!vvuMwd?O=w+i zTjf^vIl`;8&NK;nt<&i|0-<&6{iJ=Ref8jj)OyE>rMEV_`>Wl@obF?PZ~1J`r+Yr@ z`n2nb{DtxL$F-7NR+W>+ zB&f(U&-^uf>VAe{zCpeJK&QV!d%s4ZuTk{h=(vN9*I9-cVOEoMMA`@bE!sZi80I(3 L7I%P2(8>P;pg;WA diff --git a/frames/__pycache__/nuscenes_utils.cpython-39.pyc b/frames/__pycache__/nuscenes_utils.cpython-39.pyc deleted file mode 100644 index 0c28999b322147468aa54a8cb8c1bf5b1005d1c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1816 zcmZ8hOK&7K5OzPOAM?ycVzVnDabqNu+!hW9F-!=%BAZ=J!o?D5HEk!`LqD=^4`NY| zgha0S2OJWKOD-JvE8KkL#9u%wM3p@=nZ;JyRj!A>t}0jB>qP{{Z-4%A{(eBnU&w3^ z2bj;{YhJ;^2(t=OTGX#&(G{UR7PBtwedeB$aqn-qjoeu(I9Z%#yyDH+R)bl}Qt`6RD>*Id z1yh6L{GEd_=(ALEnV0-z>?r?KrgG7!Xj<2Tiob(lh>8D zOhsMG%*MM{18EPwDSS;I7D-ytTFhehwF5w%le4iSVi1TfEZW_7b;AW33JmQX5oq_% z#|PiQadQASS8vjT!#Z1(ypqkqIRe^j)uPe=n=E8rH2art)PuarWu6xKPdr&mAycH$ zI4v;*I@m5uG;S4Qm>QXumltUH^VR-jYzrSqHC)K- zT-4=810w4;pjmMJGiDi}>WKd+MViTEql>{@e?;eEZQd09${Lv;o+MExGYnrwwoI zWz^a?e(QjzP8;1i7J2=N(PXF@uQX%O?8@LKl+irC>9%CvYoQqT$gO>AEqfau{kAtB zpcfXwtxuQz)vbN-HCXu?fUlt(zT<1S@ip4=H8Q?l|K4^W3-Jl{Wc@v_bOta+Q076A z%3LlOS7A|C7n&TqD$;e5R8TBp1e%Z#Q{8d4sqSX%({MU@o*d0yoSe}B$uB0;uW5gC zm>hq3bVdjF{Os9RPtRy?t!m_2A1xCtRxUiNl*Xn663v9i&kiTE~L zRk|sO55PbTOspFz7MWZKuIoVOUxX-kK%zUMsS>tFG2gl=2Gr)A9+1^*12rEct9 OYY6ZId)FR1f%6}2cm z?eL$FkjJ=~|9P<3fk*9w;Dpl-VK_P+no&k6&fSiaxy;Qx=4C$fvw#JZd`!5<{fC76 zg0xE~E(=AO2M-)s7i1WX2x!s+5|_@vE~&?~2zjc7Ze=3&ir_$}y0408x7(GxmBW|9 zzbDg76jd{PmgZ?w$ObCU{~TECz@zp+2*M~Q%;A(f4+(R*%RLyuEgrz=^AZnX40xGG zFqU|QS78i!jjzC1=Bwb~TCx6xP}-b&pk=?I`%*M0n4kP`9>B8;k9rq`CMRS-5~|I~ z+L8&Uw=iP<3$Pv+*`@1=`+!QF;#eFt2auRxloMCb67$gA-6zxTKADI;? z!)>Fozy^AZ@fbF~h6$idhLqD0{gDpH&>6st!rP%cKtAZmnXY^tv`cgAuwCZP!aCwE zt_@pWT~@)qgt8&B3?i;bbi61x#W=uXHB|tK{zTQgy57x2QL!&R`nI2TWDPY}P$0VU z3W`+}Sd+2>;?$8FIA2GBAY1Vq%!(@p$a%WZfI^=LtA35ME%jCHu%q9Yekv&h0*$m=GQ`Y)6RKReTJK8G4;17e6g?6qqT)=&|{K$iye zgz^dE!GQ8`3tEe@Z&|@T&cYtY?3q7p!bjQi!TeSRy@5q$NT92v%>T5tcXvN_&#+d{ zFh$NV#@Jzj61nP1R)VaDM$?ox;Jw6cacJ0ND=FvWbVXZ+Di-WQwaJv#4vhM~RW4Sh z%$sxN7T77=j>u!z@W?6+qi4OU*t6}{bL4Iqh8B-TYvak z@AInj|-CED&2bK9oyf>9hrK>R7fg7IVjA`o+x9=~;2)Jt?PgpT~1{6-fhp)d9bQ{_&btzqT< z&{7(j**)yFz$O;D38tvdN<0^GSwPoKK$sf&%#elY4KSmyU17x@zkOLiOLZ@VG;Mn~ z!QLdKSpg2c0d0~=`;srirr5WEya;pK;Y(koGRHc=WQ%S0DLj+-=V;oRMrGQ&$>Kz0 zJ$-ZwRL4O)fIWE}Hw)~=bv{9DZ6YT#3+UcBH=}1(@02NNfK9B*w0%UNwv5Bs^w;SMcX?Hb4;R1`;SD3 List[Status]: - missing_data = [data_type for data_type in required_data_types if data_type not in self.data or not self.data[data_type]] - return missing_data - - def __repr__(self): - return f"Frame(name={self.frame_name}, timestamp={self.timestamp}, status={self.status}, coordinates=({self.coordinates.latitude}, {self.coordinates.longitude}))" - -class FrameManager: - def __init__(self): - self.frames = [] - - def create_frame(self, frame_name: str, timestamp: datetime, status: Status, coordinates: Coordinate): - frame = Frame(frame_name, timestamp, status, coordinates) - self.frames.append(frame) - return frame - - def get_frame(self, frame_name: str) -> Union[Frame, None]: - for frame in self.frames: - if frame.frame_name == frame_name: - return frame - return None - - def get_all_frames(self) -> List[Frame]: - return self.frames - - def update_frame_status(self, frame_name: str, new_status: Status): - frame = self.get_frame(frame_name) - if frame: - frame.status = new_status - - def add_frame_data(self, frame_name: str, data_type: Status, data: Union[str, List, dict]): - frame = self.get_frame(frame_name) - if frame: - frame.add_data(data_type, data) - - def get_frame_data(self, frame_name: str, data_type: Status): - frame = self.get_frame(frame_name) - if frame: - return frame.get_data(data_type) - return [] - - -if __name__ == "__main__": - # Create a frame manager - frame_manager = FrameManager() - - # Create a coordinate - coord = Coordinate(latitude=37.7749, longitude=-122.4194) - - # Create a frame - frame = frame_manager.create_frame( - frame_name="Frame1", - timestamp=datetime.now(), - status=Status.Active, - coordinates=coord - ) - - # Add some data to the frame - frame_manager.add_frame_data("Frame1", Status.Camera, {"image": "image_data"}) - frame_manager.add_frame_data("Frame1", Status.SensorReading, {"sensor": "LiDAR", "reading": [1, 2, 3]}) - - # Retrieve and print frame data - camera_data = frame_manager.get_frame_data("Frame1", Status.Camera) - sensor_data = frame_manager.get_frame_data("Frame1", Status.SensorReading) - print(f"Camera Data: {camera_data}") - print(f"Sensor Data: {sensor_data}") - - # Print all frames - print(f"All Frames: {frame_manager.get_all_frames()}") - - \ No newline at end of file diff --git a/frames/main.py b/frames/main.py deleted file mode 100644 index aa6569f..0000000 --- a/frames/main.py +++ /dev/null @@ -1,40 +0,0 @@ -from frame_structure import FrameManager -from nuscenes_utils import initialize_nuscenes, create_frame_from_sample -# from symbolic_parser import symbolicParser - - -dataroot = '/Users/ananya/Documents/frames/frames/v1.0-mini' -version = 'v1.0-mini' # or 'v1.0-trainval' for the full dataset -nusc = initialize_nuscenes(version, dataroot) - -frame_manager = FrameManager() - -scene = nusc.scene[0] -first_sample_token = scene['first_sample_token'] -sample = nusc.get('sample', first_sample_token) - -frame_1 = create_frame_from_sample(nusc, sample, frame_manager) - -next_sample_token = sample['next'] # Assuming the sample has a 'next' token -if next_sample_token: - next_sample = nusc.get('sample', next_sample_token) - frame_2 = create_frame_from_sample(nusc, next_sample, frame_manager) -else: - frame_2 = None # In case there is no next sample - -# parser = symbolicParser() - -# print("Symbolic Representation for Frame 1:") -# symbolic_rep_1 = parser.parse_frame(frame_1) -# for key, value in symbolic_rep_1.items(): -# print(f"{key.name}: {value}") - -# print("Symbolic Representation for Frame 1:") -# symbolic_rep_1 = parser.parse_frame(frame_1) -# for key, value in symbolic_rep_1.items(): -# print(f"{key.name}: {value}") - -# Output both frames -print("Frame 1:", frame_1) -print("Frame 2:", frame_2) - diff --git a/frames/nuscenes_utils.py b/frames/nuscenes_utils.py deleted file mode 100644 index 96abb9f..0000000 --- a/frames/nuscenes_utils.py +++ /dev/null @@ -1,48 +0,0 @@ -from nuscenes.nuscenes import NuScenes -from nuscenes.utils.data_classes import RadarPointCloud, LidarPointCloud -from datetime import datetime -import os - -from frame_structure import Status, Coordinate, FrameManager - -def initialize_nuscenes(version: str, dataroot: str): - return NuScenes(version=version, dataroot=dataroot, verbose=True) - -def extract_timestamp(sample): - return datetime.utcfromtimestamp(sample['timestamp'] / 1e6) - -def create_frame_from_sample(nusc, sample, frame_manager): - frame_name = sample['token'] - timestamp = extract_timestamp(sample) - status = Status.Active # Example status - - # Assuming these coordinates are placeholders; real coordinates need to be sourced correctly - coordinates = Coordinate( - latitude=0.0, - longitude=0.0 - ) - - frame = frame_manager.create_frame( - frame_name=frame_name, - timestamp=timestamp, - status=status, - coordinates=coordinates - ) - - for sensor_name in ['CAM_FRONT', 'CAM_BACK', 'CAM_FRONT_LEFT', 'CAM_FRONT_RIGHT', 'CAM_BACK_LEFT', 'CAM_BACK_RIGHT']: - sensor_token = sample['data'][sensor_name] - sensor_data = nusc.get('sample_data', sensor_token) - frame_manager.add_frame_data(frame_name, Status.Camera, sensor_data) - - lidar_token = sample['data']['LIDAR_TOP'] - lidar_data = nusc.get('sample_data', lidar_token) - lidar_pointcloud = LidarPointCloud.from_file(os.path.join(nusc.dataroot, lidar_data['filename'])) - frame_manager.add_frame_data(frame_name, Status.SensorReading, lidar_pointcloud.points) - - for radar_name in ['RADAR_FRONT', 'RADAR_FRONT_LEFT', 'RADAR_FRONT_RIGHT', 'RADAR_BACK_LEFT', 'RADAR_BACK_RIGHT']: - radar_token = sample['data'][radar_name] - radar_data = nusc.get('sample_data', radar_token) - radar_pointcloud = RadarPointCloud.from_file(os.path.join(nusc.dataroot, radar_data['filename'])) - frame_manager.add_frame_data(frame_name, Status.SensorReading, radar_pointcloud.points) - - return frame \ No newline at end of file diff --git a/frames/readme.md b/frames/readme.md deleted file mode 100644 index 69e0426..0000000 --- a/frames/readme.md +++ /dev/null @@ -1,57 +0,0 @@ -#Frame-Based Monitoring Experiment - -This repository contains the implementation and results of an experiment conducted on the NuScenes dataset, aligning with the objectives outlined in the AFOSR YIP proposal. The experiment leverages a frame-based monitoring system to detect, diagnose, and explain errors in multimodal autonomous systems, particularly focusing on scenarios depicted in the NuScenes dataset. - -Objectives -The primary objective of this experiment is to develop and validate a frame-based monitoring system for multimodal autonomous systems. This work is inspired by the hypothesis that a symbolic, frame-based representation can enhance the precision and explainability of error detection in complex, real-world scenarios. - -Experiment Structure -1. Frame Structure Implementation -Representation: We translated multimodal log data from the NuScenes dataset into a symbolic frame-based representation. -Integration: The representation was integrated with a reasoning engine that compares and diagnoses errors in autonomous driving scenarios. -2. NuScenes Dataset -Initialization: The NuScenes dataset was initialized, and specific samples were selected for analysis. -Visualization: Frames from the dataset were visualized, focusing on sensor data such as camera images and LiDAR point clouds. -3. Experimentation -Setup: A series of experiments were conducted to validate the frame-based monitoring system's effectiveness in real-world autonomous driving scenarios. -Results: The outcomes were analyzed to determine the system's precision, recall, and ability to provide symbolic explanations for detected errors. - -Requirements - -- Python 3.x -- Conda environment with the necessary dependencies - -How to Run the Experiment -Prerequisites -Python 3.x -Conda environment with the following packages: -nuscenes-devkit -matplotlib -opencv-python -Installation -Clone the Repository -Create and Activate the Conda Environment - -Running the Experiment -Initialize the NuScenes Dataset: - -Update the main.py file with the correct path to your NuScenes dataset. - -Run the Frame Visualization Script: - -Execute the script to visualize and diagnose frames: - -View and Analyze Results: - -The results will include visualized frames and diagnostic information, which can be used to analyze the system's performance. -Experiment Results -The experiment successfully demonstrated the feasibility of using a frame-based monitoring system for multimodal autonomous systems. Key results include: - -Improved Precision: The frame-based approach showed higher precision in error detection compared to traditional methods. -Enhanced Explainability: The system provided symbolic explanations that were both intuitive and aligned with human reasoning, increasing user trust. - -Acknowledgments -This work is part of the research supported by the AFOSR Young Investigator Program (YIP). The NuScenes dataset used in this experiment is provided by Motional. - -License -This project is licensed under the MIT License. See the LICENSE file for details. \ No newline at end of file diff --git a/frames/requirements.txt b/frames/requirements.txt deleted file mode 100644 index 7db3b83..0000000 --- a/frames/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -nuscenes-devkit \ No newline at end of file diff --git a/frames/test_frame_structure.py b/frames/test_frame_structure.py deleted file mode 100644 index 3d7c2df..0000000 --- a/frames/test_frame_structure.py +++ /dev/null @@ -1,135 +0,0 @@ -import unittest -from datetime import datetime -from frame_structure import Status, Coordinate, Frame, FrameManager - -class TestFrameStructure(unittest.TestCase): - - def setUp(self): - self.frame_manager = FrameManager() - self.coord = Coordinate(latitude=37.7749, longitude=-122.4194) - self.frame = self.frame_manager.create_frame( - frame_name="Frame1", - timestamp=datetime.now(), - status=Status.Active, - coordinates=self.coord - ) - - def test_create_frame(self): - frame = self.frame_manager.get_frame("Frame1") - self.assertIsNotNone(frame) - self.assertEqual(frame.frame_name, "Frame1") - self.assertEqual(frame.status, Status.Active) - self.assertEqual(frame.coordinates.latitude, 37.7749) - self.assertEqual(frame.coordinates.longitude, -122.4194) - - def test_add_frame_data(self): - self.frame_manager.add_frame_data("Frame1", Status.Camera, {"image": "image_data"}) - self.frame_manager.add_frame_data("Frame1", Status.SensorReading, {"sensor": "LiDAR", "reading": [1, 2, 3]}) - camera_data = self.frame_manager.get_frame_data("Frame1", Status.Camera) - sensor_data = self.frame_manager.get_frame_data("Frame1", Status.SensorReading) - self.assertEqual(len(camera_data), 1) - self.assertEqual(camera_data[0], {"image": "image_data"}) - self.assertEqual(len(sensor_data), 1) - self.assertEqual(sensor_data[0], {"sensor": "LiDAR", "reading": [1, 2, 3]}) - - def test_update_frame_status(self): - self.frame_manager.update_frame_status("Frame1", Status.Completed) - frame = self.frame_manager.get_frame("Frame1") - self.assertEqual(frame.status, Status.Completed) - - def test_get_nonexistent_frame(self): - frame = self.frame_manager.get_frame("NonexistentFrame") - self.assertIsNone(frame) - - def test_get_frame_data_empty(self): - data = self.frame_manager.get_frame_data("Frame1", Status.Warning) - self.assertEqual(data, []) - - def test_get_all_frames(self): - frames = self.frame_manager.get_all_frames() - self.assertEqual(len(frames), 1) - self.assertEqual(frames[0].frame_name, "Frame1") - - def test_check_missing_data(self): - # Test with no data added - required_data_types = [Status.Camera, Status.SensorReading] - missing_data = self.frame.check_missing_data(required_data_types) - self.assertEqual(missing_data, [Status.Camera, Status.SensorReading]) - - # Test with one data type added - self.frame_manager.add_frame_data("Frame1", Status.Camera, {"image": "image_data"}) - missing_data = self.frame.check_missing_data(required_data_types) - self.assertEqual(missing_data, [Status.SensorReading]) - - # Test with all required data added - self.frame_manager.add_frame_data("Frame1", Status.SensorReading, {"sensor": "LiDAR", "reading": [1, 2, 3]}) - missing_data = self.frame.check_missing_data(required_data_types) - self.assertEqual(missing_data, []) - - def test_update_nonexistent_frame(self): - self.frame_manager.update_frame_status("NonexistentFrame", Status.Completed) - frame = self.frame_manager.get_frame("NonexistentFrame") - self.assertIsNone(frame) - - def test_remove_frame_data(self): - self.frame_manager.add_frame_data("Frame1", Status.Camera, {"image": "image_data"}) - frame = self.frame_manager.get_frame("Frame1") - frame.data.pop(Status.Camera, None) - camera_data = self.frame_manager.get_frame_data("Frame1", Status.Camera) - self.assertEqual(camera_data, []) - - # def test_edge_cases_coordinates(self): - # with self.assertRaises(ValueError): - # coord_invalid = Coordinate(latitude=100.0, longitude=190.0) # Invalid coordinates - - def test_frame_manager_initialization_and_cleanup(self): - new_frame_manager = FrameManager() - self.assertEqual(len(new_frame_manager.frames), 0) - new_frame_manager.create_frame( - frame_name="TestFrame", - timestamp=datetime.now(), - status=Status.Active, - coordinates=self.coord - ) - self.assertEqual(len(new_frame_manager.frames), 1) - new_frame_manager.frames.clear() - self.assertEqual(len(new_frame_manager.frames), 0) - - def test_add_data_to_nonexistent_frame(self): - self.frame_manager.add_frame_data("NonexistentFrame", Status.Camera, {"image": "image_data"}) - frame = self.frame_manager.get_frame("NonexistentFrame") - self.assertIsNone(frame) - - # def test_add_invalid_data_type(self): - # with self.assertRaises(TypeError): - # self.frame_manager.add_frame_data("Frame1", "InvalidStatus", {"image": "image_data"}) # Invalid data type - - # def test_frame_with_different_timestamps(self): - # timestamp1 = datetime.now() - # timestamp2 = datetime.now() - # frame1 = self.frame_manager.create_frame("Frame2", timestamp1, Status.Active, self.coord) - # frame2 = self.frame_manager.create_frame("Frame3", timestamp2, Status.Active, self.coord) - # self.assertNotEqual(frame1.timestamp, frame2.timestamp) - - def test_update_frame_data(self): - self.frame_manager.add_frame_data("Frame1", Status.Camera, {"image": "image_data"}) - self.frame_manager.add_frame_data("Frame1", Status.Camera, {"image": "updated_image_data"}) - camera_data = self.frame_manager.get_frame_data("Frame1", Status.Camera) - self.assertEqual(len(camera_data), 2) - self.assertEqual(camera_data[1], {"image": "updated_image_data"}) - - def test_remove_frame(self): - frame_to_remove = self.frame_manager.create_frame("FrameToRemove", datetime.now(), Status.Active, self.coord) - self.frame_manager.frames.remove(frame_to_remove) - frame = self.frame_manager.get_frame("FrameToRemove") - self.assertIsNone(frame) - - def test_retrieve_frames_by_status(self): - self.frame_manager.create_frame("Frame2", datetime.now(), Status.Completed, self.coord) - self.frame_manager.create_frame("Frame3", datetime.now(), Status.Completed, self.coord) - completed_frames = [frame for frame in self.frame_manager.get_all_frames() if frame.status == Status.Completed] - self.assertEqual(len(completed_frames), 2) - - -if __name__ == "__main__": - unittest.main() \ No newline at end of file diff --git a/frames/validate_condensing.py b/frames/validate_condensing.py deleted file mode 100644 index 5e41278..0000000 --- a/frames/validate_condensing.py +++ /dev/null @@ -1,52 +0,0 @@ -from condense_frames import FrameCondenser -from frame_manager import Frame, Annotation, Coordinate -import numpy as np - -def validate_condensing(): - """ - Validates the frame condensing process with sample data. - """ - # Sample frames data - frame1 = Frame( - coordinates=(608.85, 2011.05, 0.0), - status='ACTIVE', - annotations=[ - Annotation( - category='vehicle.car', - location=Coordinate(640.775, 1970.009, 1.143), - size=[2.0, 4.32, 1.49], - rotation=[0.9227, 0.0, 0.0, -0.3855], - velocity=np.array([np.nan, np.nan, np.nan]), - num_lidar_pts=0, - num_radar_pts=1 - ) - ] - ) - - frame2 = Frame( - coordinates=(610.2, 2012.1, 0.0), - status='ACTIVE', - annotations=[ - Annotation( - category='vehicle.car', - location=Coordinate(625.206, 1972.364, 0.772), - size=[2.126, 4.592, 1.641], - rotation=[0.3673, 0.0, 0.0, 0.9301], - velocity=np.array([-6.88, 6.54, -0.36]), - num_lidar_pts=8, - num_radar_pts=2 - ) - ] - ) - - # Initialize the condenser - condenser = FrameCondenser() - - # Condense frames - condensed_scene = condenser.condense_frames([frame1, frame2]) - - # Display the condensed scene - print("Condensed Scene:", condensed_scene) - -if __name__ == "__main__": - validate_condensing() diff --git a/testCoordinate.py b/testCoordinate.py deleted file mode 100644 index 504bd55..0000000 --- a/testCoordinate.py +++ /dev/null @@ -1,40 +0,0 @@ -import unittest -from datetime import datetime - -class TestMissingData(unittest.TestCase): - def setUp(self): - self.frame_manager = FrameManager() - - def test_create_frame_with_missing_name(self): - coord = Coordinate(37.7749, -122.4194) - with self.assertRaises(TypeError): # Assuming TypeError for missing required positional arguments - frame = self.frame_manager.create_frame(None, datetime.now(), Status.Active, coord) - - def test_create_frame_with_missing_timestamp(self): - coord = Coordinate(37.7749, -122.4194) - with self.assertRaises(TypeError): # Assuming TypeError for missing required positional arguments - frame = self.frame_manager.create_frame("Frame1", None, Status.Active, coord) - - def test_create_frame_with_missing_status(self): - coord = Coordinate(37.7749, -122.4194) - with self.assertRaises(TypeError): # Assuming TypeError for missing required positional arguments - frame = self.frame_manager.create_frame("Frame1", datetime.now(), None, coord) - - def test_create_frame_with_missing_coordinates(self): - with self.assertRaises(TypeError): # Assuming TypeError for missing required positional arguments - frame = self.frame_manager.create_frame("Frame1", datetime.now(), Status.Active, None) - - def test_add_data_to_nonexistent_frame(self): - with self.assertRaises(AttributeError): # Assuming AttributeError for operations on NoneType - self.frame_manager.add_frame_data("NonExistentFrame", Status.Camera, {"image": "image_data"}) - - def test_get_data_from_nonexistent_frame(self): - data = self.frame_manager.get_frame_data("NonExistentFrame", Status.Camera) - self.assertEqual(data, []) - - def test_update_status_of_nonexistent_frame(self): - with self.assertRaises(AttributeError): # Assuming AttributeError for operations on NoneType - self.frame_manager.update_frame_status("NonExistentFrame", Status.Completed) - -if __name__ == "__main__": - unittest.main() \ No newline at end of file diff --git a/test_frame_manager.py b/test_frame_manager.py deleted file mode 100644 index 0c06970..0000000 --- a/test_frame_manager.py +++ /dev/null @@ -1,76 +0,0 @@ -import unittest -from datetime import datetime -from enum import Enum -from typing import List, Union - -# Assuming the classes are imported from your module -from your_module import Status, Coordinate, Frame, FrameManager - -class TestCoordinate(unittest.TestCase): - def test_coordinate_initialization(self): - coord = Coordinate(37.7749, -122.4194) - self.assertEqual(coord.latitude, 37.7749) - self.assertEqual(coord.longitude, -122.4194) - -class TestFrame(unittest.TestCase): - def setUp(self): - self.coord = Coordinate(37.7749, -122.4194) - self.frame = Frame( - frame_name="Frame1", - timestamp=datetime.now(), - status=Status.Active, - coordinates=self.coord - ) - - def test_frame_initialization(self): - self.assertEqual(self.frame.frame_name, "Frame1") - self.assertEqual(self.frame.status, Status.Active) - self.assertEqual(self.frame.coordinates.latitude, 37.7749) - self.assertEqual(self.frame.coordinates.longitude, -122.4194) - - def test_add_data(self): - self.frame.add_data(Status.Camera, {"image": "image_data"}) - self.assertEqual(self.frame.get_data(Status.Camera), [{"image": "image_data"}]) - - def test_get_data(self): - self.frame.add_data(Status.SensorReading, {"sensor": "LiDAR", "reading": [1, 2, 3]}) - data = self.frame.get_data(Status.SensorReading) - self.assertEqual(data, [{"sensor": "LiDAR", "reading": [1, 2, 3]}]) - -class TestFrameManager(unittest.TestCase): - def setUp(self): - self.frame_manager = FrameManager() - self.coord = Coordinate(37.7749, -122.4194) - self.frame = self.frame_manager.create_frame( - frame_name="Frame1", - timestamp=datetime.now(), - status=Status.Active, - coordinates=self.coord - ) - - def test_create_frame(self): - self.assertEqual(len(self.frame_manager.get_all_frames()), 1) - self.assertEqual(self.frame_manager.get_all_frames()[0].frame_name, "Frame1") - - def test_get_frame(self): - frame = self.frame_manager.get_frame("Frame1") - self.assertIsNotNone(frame) - self.assertEqual(frame.frame_name, "Frame1") - - def test_update_frame_status(self): - self.frame_manager.update_frame_status("Frame1", Status.Completed) - frame = self.frame_manager.get_frame("Frame1") - self.assertEqual(frame.status, Status.Completed) - - def test_add_frame_data(self): - self.frame_manager.add_frame_data("Frame1", Status.Camera, {"image": "image_data"}) - data = self.frame_manager.get_frame_data("Frame1", Status.Camera) - self.assertEqual(data, [{"image": "image_data"}]) - - def test_get_frame_data(self): - self.frame_manager.add_frame_data("Frame1", Status.SensorReading, {"sensor": "LiDAR", "reading": [1, 2, 3]}) - data = self.frame_manager.get_frame_data("Frame1", Status.SensorReading) - self.assertEqual(data, [{"sensor": "LiDAR", "reading": [1, 2, 3]}]) - -if __name__ == "__main__": - unittest.main() From 704999016c39c6cf1383c47b32c1d9fb225453bc Mon Sep 17 00:00:00 2001 From: "ananya.das" Date: Wed, 30 Oct 2024 18:30:44 -0700 Subject: [PATCH 02/14] commit From 372282e870b88832030c4bf87925deea62db0ffb Mon Sep 17 00:00:00 2001 From: Ananya Date: Wed, 30 Oct 2024 18:34:49 -0700 Subject: [PATCH 03/14] Create src --- src | 1 + 1 file changed, 1 insertion(+) create mode 100644 src diff --git a/src b/src new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src @@ -0,0 +1 @@ + From e5d21bad64ce08a592c9d56447446353ab6c8aa4 Mon Sep 17 00:00:00 2001 From: Ananya Date: Wed, 30 Oct 2024 18:39:19 -0700 Subject: [PATCH 04/14] Create README.md --- README.md | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..3df524f --- /dev/null +++ b/README.md @@ -0,0 +1,54 @@ +# Frame-Based Monitoring + +[![Colab Demo](https://colab.research.google.com/assets/colab-badge.svg)]() + +[![Documentation Status](https://readthedocs.org/projects/lotus-ai/badge/?version=latest)]() +[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/lotus-ai)][#pypi-package] +[![PyPI](https://img.shields.io/pypi/v/lotus-ai)][#pypi-package] +[![GitHub license](https://img.shields.io/badge/License-MIT-blu.svg)][#license-gh-package] + +[#license-gh-package]: https://lbesson.mit-license.org/ +[#arxiv-paper-package]: https://arxiv.org/abs/2407.11418 +[#pypi-package]: https://pypi.org/project/lotus-ai/ + + +## Key Concept : Static Frame Condensation +Static frame condensation is an innovative approach aimed at streamlining the analysis of static frames by reducing redundancy and retaining only the most essential information. This project leverages advanced algorithms to condense frames without compromising critical data integrity, making it particularly useful for: + +- **Autonomous Systems**: Enhancing decision-making by reducing the volume of static data frames processed, thereby optimizing computational resources. +- **Natural Language Processing (NLP)**: Improving text condensation and summarization tasks by filtering repetitive frame data in symbolic language models. + +The repository contains tools and methods for: +- **Identifying Redundant Frames**: Employing statistical analysis and clustering techniques to detect and remove duplicate or similar frames from static datasets. +- **Optimized Data Structures**: Utilizing efficient data structures that facilitate rapid condensation of static frames, enabling faster processing speeds. +- **Real-World Applications**: With applications in AI, robotics, and NLP, this project serves as a foundation for further research into frame-based communication, decision-making models, and symbolic processing. + +The main goal of this repository is to provide a robust framework for researchers and developers working on frame condensation techniques, with a focus on both efficiency and effectiveness in data handling. + +#Installation +# Clone this repository +git clone https://github.com/your-username/static-frame-condensation.git + +# Navigate to the project directory +cd static-frame-condensation + +# Install dependencies +pip install -r requirements.txt + +#Usage +# Import the static frame condensation module +from condensation import StaticFrameCondensor + +# Initialize the condensor with your data +condensor = StaticFrameCondensor(data) + +# Run the condensation process +condensed_data = condensor.condense() + +# Save or analyze the condensed data +save(condensed_data, 'output_file_path') + +#Examples + +#Condensation +Contributions are welcome! Please fork this repository, create a branch, and submit a pull request with your changes. From 54f2645af0a229889191de5624faa6458e96fec2 Mon Sep 17 00:00:00 2001 From: Ananya Date: Wed, 30 Oct 2024 18:40:12 -0700 Subject: [PATCH 05/14] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3df524f..4284761 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Frame-Based Monitoring -[![Colab Demo](https://colab.research.google.com/assets/colab-badge.svg)]() + [![Documentation Status](https://readthedocs.org/projects/lotus-ai/badge/?version=latest)]() [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/lotus-ai)][#pypi-package] From 2f7d43d310d24bcac89975633204ab62bce998e4 Mon Sep 17 00:00:00 2001 From: Ananya Date: Wed, 30 Oct 2024 18:46:36 -0700 Subject: [PATCH 06/14] Update README.md -- Static Frame condensation details --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 4284761..a531699 100644 --- a/README.md +++ b/README.md @@ -8,29 +8,29 @@ [![GitHub license](https://img.shields.io/badge/License-MIT-blu.svg)][#license-gh-package] [#license-gh-package]: https://lbesson.mit-license.org/ -[#arxiv-paper-package]: https://arxiv.org/abs/2407.11418 +[#arxiv-paper-package]: [#pypi-package]: https://pypi.org/project/lotus-ai/ -## Key Concept : Static Frame Condensation +## Key Concept: Static Frame Condensation Static frame condensation is an innovative approach aimed at streamlining the analysis of static frames by reducing redundancy and retaining only the most essential information. This project leverages advanced algorithms to condense frames without compromising critical data integrity, making it particularly useful for: - **Autonomous Systems**: Enhancing decision-making by reducing the volume of static data frames processed, thereby optimizing computational resources. - **Natural Language Processing (NLP)**: Improving text condensation and summarization tasks by filtering repetitive frame data in symbolic language models. The repository contains tools and methods for: -- **Identifying Redundant Frames**: Employing statistical analysis and clustering techniques to detect and remove duplicate or similar frames from static datasets. -- **Optimized Data Structures**: Utilizing efficient data structures that facilitate rapid condensation of static frames, enabling faster processing speeds. +- **Identifying Redundant Frames**: Employing statistical analysis and clustering techniques to detect duplicate or similar frames from static datasets. +- **Optimized Data Structures**: Utilizing efficient data structures that facilitate condensation of static frames, enabling faster processing speeds. - **Real-World Applications**: With applications in AI, robotics, and NLP, this project serves as a foundation for further research into frame-based communication, decision-making models, and symbolic processing. The main goal of this repository is to provide a robust framework for researchers and developers working on frame condensation techniques, with a focus on both efficiency and effectiveness in data handling. #Installation # Clone this repository -git clone https://github.com/your-username/static-frame-condensation.git +git clone https://github.com/aiea-lab/frames.git # Navigate to the project directory -cd static-frame-condensation +cd scripts/nuscenes_main.py # Install dependencies pip install -r requirements.txt From 812df58ac1dfc44357d8ae58b4e02362e55327d5 Mon Sep 17 00:00:00 2001 From: Ananya Date: Wed, 30 Oct 2024 18:46:58 -0700 Subject: [PATCH 07/14] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a531699..a800fa1 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,8 @@ [![Documentation Status](https://readthedocs.org/projects/lotus-ai/badge/?version=latest)]() -[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/lotus-ai)][#pypi-package] -[![PyPI](https://img.shields.io/pypi/v/lotus-ai)][#pypi-package] +[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/lotus-ai)] +[![PyPI](https://img.shields.io/pypi/v/lotus-ai)] [![GitHub license](https://img.shields.io/badge/License-MIT-blu.svg)][#license-gh-package] [#license-gh-package]: https://lbesson.mit-license.org/ From aad66be7310e66210f1d4113f0f1f5cc4f58ba1f Mon Sep 17 00:00:00 2001 From: Ananya Date: Wed, 30 Oct 2024 18:48:30 -0700 Subject: [PATCH 08/14] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a800fa1..50d79e1 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ -[![Documentation Status](https://readthedocs.org/projects/lotus-ai/badge/?version=latest)]() -[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/lotus-ai)] -[![PyPI](https://img.shields.io/pypi/v/lotus-ai)] +![Documentation Status](https://readthedocs.org/projects/lotus-ai/badge/?version=latest)]() +![PyPI - Python Version](https://img.shields.io/pypi/pyversions/lotus-ai) +![PyPI](https://img.shields.io/pypi/v/lotus-ai) [![GitHub license](https://img.shields.io/badge/License-MIT-blu.svg)][#license-gh-package] [#license-gh-package]: https://lbesson.mit-license.org/ From 3ad04fb7c82fc7bf1d6b19b5448e67d066675797 Mon Sep 17 00:00:00 2001 From: Ananya Date: Wed, 30 Oct 2024 18:50:00 -0700 Subject: [PATCH 09/14] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 50d79e1..6bcd1ac 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ -![Documentation Status](https://readthedocs.org/projects/lotus-ai/badge/?version=latest)]() +![Documentation Status](https://readthedocs.org/projects/lotus-ai/badge/?version=latest)] ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/lotus-ai) ![PyPI](https://img.shields.io/pypi/v/lotus-ai) [![GitHub license](https://img.shields.io/badge/License-MIT-blu.svg)][#license-gh-package] From 72ba1d93b55c5cbe348cd45762e867f94f682ac5 Mon Sep 17 00:00:00 2001 From: Ananya Date: Wed, 30 Oct 2024 18:50:55 -0700 Subject: [PATCH 10/14] Update README.md --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 6bcd1ac..a60736b 100644 --- a/README.md +++ b/README.md @@ -26,26 +26,26 @@ The repository contains tools and methods for: The main goal of this repository is to provide a robust framework for researchers and developers working on frame condensation techniques, with a focus on both efficiency and effectiveness in data handling. #Installation -# Clone this repository +- Clone this repository git clone https://github.com/aiea-lab/frames.git -# Navigate to the project directory +- Navigate to the project directory cd scripts/nuscenes_main.py -# Install dependencies +- Install dependencies pip install -r requirements.txt #Usage -# Import the static frame condensation module +- Import the static frame condensation module from condensation import StaticFrameCondensor -# Initialize the condensor with your data +- Initialize the condensor with your data condensor = StaticFrameCondensor(data) -# Run the condensation process +- Run the condensation process condensed_data = condensor.condense() -# Save or analyze the condensed data +- Save or analyze the condensed data save(condensed_data, 'output_file_path') #Examples From f1f14ba675136df7df5e881041f5254fc1e2750a Mon Sep 17 00:00:00 2001 From: Ananya Date: Wed, 30 Oct 2024 18:51:15 -0700 Subject: [PATCH 11/14] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a60736b..a660d6e 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ -![Documentation Status](https://readthedocs.org/projects/lotus-ai/badge/?version=latest)] +![Documentation Status](https://readthedocs.org/projects/lotus-ai/badge/?version=latest) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/lotus-ai) ![PyPI](https://img.shields.io/pypi/v/lotus-ai) [![GitHub license](https://img.shields.io/badge/License-MIT-blu.svg)][#license-gh-package] From af7418eb097038523f7c94219f025568dbe11655 Mon Sep 17 00:00:00 2001 From: Ananya Date: Wed, 30 Oct 2024 18:51:31 -0700 Subject: [PATCH 12/14] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index a660d6e..1646cbf 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,7 @@ [![GitHub license](https://img.shields.io/badge/License-MIT-blu.svg)][#license-gh-package] [#license-gh-package]: https://lbesson.mit-license.org/ -[#arxiv-paper-package]: -[#pypi-package]: https://pypi.org/project/lotus-ai/ + ## Key Concept: Static Frame Condensation From d9c68e1e826c08427f4f9bcf9851b0471cea1e5c Mon Sep 17 00:00:00 2001 From: Ananya Date: Wed, 30 Oct 2024 20:05:52 -0700 Subject: [PATCH 13/14] Update README.md --- README.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1646cbf..de194a1 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,19 @@ ## Key Concept: Static Frame Condensation -Static frame condensation is an innovative approach aimed at streamlining the analysis of static frames by reducing redundancy and retaining only the most essential information. This project leverages advanced algorithms to condense frames without compromising critical data integrity, making it particularly useful for: +This project focuses on condensing and analyzing frames, initially handling static frames for now. This system aims to streamline data from various sources (e.g., NuScenes dataset) by extracting symbolic representations, which can be applied in autonomous systems and object state prediction. + +## Goals +1. **Condense Frames:** Transform dense, complex data into simplified symbolic representations for easier processing. +2. **Dynamic Frame Condensation:** Build upon static frame condensation to enable real-time data updates and adaptive frame structures. +3. **Symbolic Parsing:** Use a symbolic parser to convert data into human-readable text, enhancing interpretability. + +## Folder Structure + +- **`src/condensing`**: Contains the primary code for condensing static frames. +- **`src/symbolic_parser`**: Houses files for parsing and converting frames into symbolic representations. +- **`dynamic_frame_condensation`**: Future work that will expand upon static frame condensation to enable dynamic, real-time updates. + - **Autonomous Systems**: Enhancing decision-making by reducing the volume of static data frames processed, thereby optimizing computational resources. - **Natural Language Processing (NLP)**: Improving text condensation and summarization tasks by filtering repetitive frame data in symbolic language models. From be4b1fe96f9eabf011826d2ab2f0e01dd0556be6 Mon Sep 17 00:00:00 2001 From: "ananya.das" Date: Fri, 1 Nov 2024 09:28:09 -0700 Subject: [PATCH 14/14] Delete src --- src | 1 - 1 file changed, 1 deletion(-) delete mode 100644 src diff --git a/src b/src deleted file mode 100644 index 8b13789..0000000 --- a/src +++ /dev/null @@ -1 +0,0 @@ -