naurril / SUSTechPOINTS

3D Point Cloud Annotation Platform for Autonomous Driving
GNU General Public License v3.0
783 stars 206 forks source link

Changes in calibration file #165

Closed Jayden9912 closed 6 months ago

Jayden9912 commented 10 months ago

Currently, the calibration json file only have one intrinsic and extrinsic matrix for all the frames as shown: { "extrinsic": [-0.9994466143126584, 0.033033376071303994, -0.003906559137689193, 0.20487898588180542, 0.0025198193977806005, -0.0419178508124942, -0.9991178830816032, 0.0013696063542738557, -0.033167991334523576, -0.9985748293686324, 0.04181141593201179, -0.10943480581045151, 0, 0, 0, 1], "intrinsic": [1.2100629810000000e+03, 0.0, 1.0224299030000000e+03, 0.0,1.2058507139999999e+03, 7.9254164400000002e+02, 0.0, 0.0, 1.0] }

If I want to have different extrinsic matrix for every frames, like: { "0":{ "extrinsic": [-0.9994466143126584, 0.033033376071303994, -0.003906559137689193, 0.20487898588180542, 0.0025198193977806005, -0.0419178508124942, -0.9991178830816032, 0.0013696063542738557, -0.033167991334523576, -0.9985748293686324, 0.04181141593201179, -0.10943480581045151, 0, 0, 0, 1], "intrinsic": [1.2100629810000000e+03, 0.0, 1.0224299030000000e+03, 0.0,1.2058507139999999e+03, 7.9254164400000002e+02, 0.0, 0.0, 1.0]},

"1":{ "extrinsic": [-0.9994466143126584, 0.033033376071303994, -0.003906559137689193, 0.20487898588180542, 0.0025198193977806005, -0.0419178508124942, -0.9991178830816032, 0.0013696063542738557, -0.033167991334523576, -0.9985748293686324, 0.04181141593201179, -0.10943480581045151, 0, 0, 0, 1], "intrinsic": [1.2100629810000000e+03, 0.0, 1.0224299030000000e+03, 0.0,1.2058507139999999e+03, 7.9254164400000002e+02, 0.0, 0.0, 1.0]} } The keys will be following the image file name.

May I know how should I change the projection function which project the bbox from pcd to img?

naurril commented 10 months ago

each frame can have their own calib file, like calib/camera/front/frame1.json

Jayden9912 commented 10 months ago

I see, thanks for your speedy reply!

Jayden9912 commented 10 months ago

Hi @naurril. I have put the calib file in the file structure as mentioned but it doesn't work. May I know is there any argument that I have to pass to the main.py when launching it?

naurril commented 9 months ago

There is no configuration, frame calib has priority over global calib.

did you organize your folder structure like this?

data
  scene1
    calib
      camera
         front.json
         front
              frame1.json
    lidar
       frame1.pcd
    camera
       front
           frame1.jpg
Jayden9912 commented 9 months ago

I have that file structure and currently i am using branch dev-auto-annotate? Is it the correct branch to use?

Jayden9912 commented 9 months ago

My file structure is as follow:

data
  scene1
    calib
      camera
         cam1.json
         cam1
              0000.json
    lidar
       0000.pcd
    camera
       cam1
           0000.jpg
naurril commented 9 months ago

Please try fusion branch

Jayden9912 commented 9 months ago

Thanks for your reply. I encountered this error:

Traceback (most recent call last):
  File "main.py", line 67, in <module>
    cfg_updator = CfgUpdator(usercfg, usercfg_file)
  File "main.py", line 58, in __init__
    self.old_time = os.stat(usercfg_file).st_mtime
FileNotFoundError: [Errno 2] No such file or directory: 'conf/user.conf'

What user.conf should I create?

Jayden9912 commented 9 months ago

I followed the install from source documentation to build the react app, but when I run python main.py, there are a lot of errors, I try to remove the .example for all filenames in folder conf. But now I encountered a new error:

Traceback (most recent call last):
  File "main.py", line 172, in <module>
    dataset_cfg = build_dataset_cfgs()
  File "main.py", line 149, in build_dataset_cfgs
    dir_org = datacfg['global']['dirorg'] if 'dirorg' in datacfg['global'] else 'by_scene'
  File "/usr/lib/python3.8/configparser.py", line 960, in __getitem__
    raise KeyError(key)
KeyError: 'global'

Update: I try to create a data.conf like this:

[global]
rootdir=./data

But I faced a new error with 404 code

127.0.0.1 - - [06/Sep/2023:13:57:21] "GET /data/lidar_pose/test2/lidar_pose/frame1.json?token=null HTTP/1.1" 404 1542 "http://0.0.0.0:8081/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:85.0) Gecko/20100101 Firefox/85.0"
127.0.0.1 - - [06/Sep/2023:13:57:21] "GET /data/camera/test2/camera/cam3/frame1.jpg HTTP/1.1" 404 1534 "http://0.0.0.0:8081/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:85.0) Gecko/20100101 Firefox/85.0"
127.0.0.1 - - [06/Sep/2023:13:57:21] "GET /data/camera/test2/camera/cam5/frame1.jpg HTTP/1.1" 404 1534 "http://0.0.0.0:8081/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:85.0) Gecko/20100101 Firefox/85.0"
127.0.0.1 - - [06/Sep/2023:13:57:21] "GET /data/camera/test2/camera/cam9/frame1.jpg HTTP/1.1" 404 1534 "http://0.0.0.0:8081/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:85.0) Gecko/20100101 Firefox/85.0"
127.0.0.1 - - [06/Sep/2023:13:57:21] "GET /data/camera/test2/camera/cam7/frame1.jpg HTTP/1.1" 404 1534 "http://0.0.0.0:8081/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:85.0) Gecko/20100101 Firefox/85.0"
127.0.0.1 - - [06/Sep/2023:13:57:21] "GET /data/camera/test2/camera/front/frame1.jpg HTTP/1.1" 404 1536 "http://0.0.0.0:8081/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:85.0) Gecko/20100101 Firefox/85.0"
127.0.0.1 - - [06/Sep/2023:13:57:21] "GET /api/load_calib?scene=test2&frame=frame1 HTTP/1.1" 200 430 "" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:85.0) Gecko/20100101 Firefox/85.0"

And on frontend, this is the error:

HTTP error! status: 500
    at http://localhost:3000/static/js/bundle.js:12506:13
naurril commented 9 months ago

This is a bug, have just fixed it. Please pull the newest code. Thx.

Jayden9912 commented 9 months ago

Thanks. It works now. However, I think there are still some bugs

127.0.0.1 - - [06/Sep/2023:16:32:14] "GET /data/camera/test2/camera/cam3/0001.jpg HTTP/1.1" 404 692 "http://0.0.0.0:8081/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:85.0) Gecko/20100101 Firefox/85.0"

The path should be /data/test2/camera/cam3/0001.jpg

Anyway, the picture are still loaded, we can solve this at a later time.

However, now if I edit this line, when I zoom out, I faced the same issue as mentioned here. #159

May I know which line should I change this time? I have tried to clear the cache of the browser but it still doesn't work.

Really appreciate your support thus far.

Update: If i use the frontend, then it works if I zoom out, but there are a lot of errors like: image

After I close the error window, the bbox is there but there is no window on the left side to edit adjust the bbox size. image

Just curious, does the code work perfectly on your side?

naurril commented 9 months ago

It looks like the extrinsic calib matrix is null, you don't have calib for this scene?

I have made a quickfix, please pull the newest code to remove the error.

Jayden9912 commented 9 months ago

Yup, I have checked my calibration file and file structure, they are the same as the mentioned above.

I have tried with the example provided, if I draw some bboxes randomly, errors pop out also. It also related to the null properties. The bbox drawn is scooterrider. image image

May I know also what is your node and npm version?