Error with Calibration: TypeError: 'NoneType' object is not subscriptable
Open
KenR22
opened this issue 4 years ago
•
5 comments
Hi,
I am having a problem with calibration and attached the output of anipose calibrate below:
Thank you
D:\workspac_deepcut\local_DLC\FN 10-02-2020 - Short Clip-Chrissy-2020-10-08\videos\anipose_test\test1\calibration\TEST5-20201117T115653-115904_cam5.mp4
100%|████████████████████████████| 3960/3960 [00:35<00:00, 112.75it/s]
841 boards detected
defaultdict(<class 'int'>, {})
Traceback (most recent call last):
File "c:\users\rahmank\appdata\local\continuum\anaconda3\envs\anipose\lib\runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "c:\users\rahmank\appdata\local\continuum\anaconda3\envs\anipose\lib\runpy.py", line 85, in run_code
exec(code, run_globals)
File "C:\Users\rahmank\AppData\Local\Continuum\anaconda3\envs\anipose\Scripts\anipose.exe_main.py", line 7, in
File "c:\users\rahmank\appdata\local\continuum\anaconda3\envs\anipose\lib\site-packages\click\core.py", line 829, in call
return self.main(*args, **kwargs)
File "c:\users\rahmank\appdata\local\continuum\anaconda3\envs\anipose\lib\site-packages\click\core.py", line 782, in main
rv = self.invoke(ctx)
File "c:\users\rahmank\appdata\local\continuum\anaconda3\envs\anipose\lib\site-packages\click\core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "c:\users\rahmank\appdata\local\continuum\anaconda3\envs\anipose\lib\site-packages\click\core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "c:\users\rahmank\appdata\local\continuum\anaconda3\envs\anipose\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "c:\users\rahmank\appdata\local\continuum\anaconda3\envs\anipose\lib\site-packages\click\decorators.py", line 73, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "c:\users\rahmank\appdata\local\continuum\anaconda3\envs\anipose\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "c:\users\rahmank\appdata\local\continuum\anaconda3\envs\anipose\lib\site-packages\anipose\anipose.py", line 115, in calibrate
calibrate_all(config)
File "c:\users\rahmank\appdata\local\continuum\anaconda3\envs\anipose\lib\site-packages\anipose\common.py", line 168, in fun
return process_all(config, process_session, **args)
File "c:\users\rahmank\appdata\local\continuum\anaconda3\envs\anipose\lib\site-packages\anipose\common.py", line 125, in process_all
output[()] = process_session(config, pipeline_prefix, **args)
File "c:\users\rahmank\appdata\local\continuum\anaconda3\envs\anipose\lib\site-packages\anipose\calibrate.py", line 187, in process_session
verbose=True)
File "c:\users\rahmank\appdata\local\continuum\anaconda3\envs\anipose\lib\site-packages\aniposelib\cameras.py", line 1560, in calibrate_rows
rvecs, tvecs = get_initial_extrinsics(rtvecs)
File "c:\users\rahmank\appdata\local\continuum\anaconda3\envs\anipose\lib\site-packages\aniposelib\utils.py", line 173, in get_initial_extrinsics
pairs = find_calibration_pairs(graph, source=0)
File "c:\users\rahmank\appdata\local\continuum\anaconda3\envs\anipose\lib\site-packages\aniposelib\utils.py", line 156, in find_calibration_pairs
for new in graph[item]:
TypeError: 'NoneType' object is not subscriptable
(Anipose) C:\Users\jjw\Desktop\Anipose3D\hand-demo-unfilled>anipose calibrate
Calibrating...
C:\Users\jjw\Desktop\Anipose3D\hand-demo-unfilled\summaries
C:\Users\jjw\Desktop\Anipose3D\hand-demo-unfilled\2019-08-02
C:\Users\jjw\Desktop\Anipose3D\hand-demo-unfilled\2019-08-02\calibration\calibration.toml
C:\Users\jjw\Desktop\Anipose3D\hand-demo-unfilled\2019-08-02\calibration\calib-charuco-camA.MOV
100%|█████████████████████████████| 5274/5274 [04:24<00:00, 19.96it/s]
5274 boards detected
C:\Users\jjw\Desktop\Anipose3D\hand-demo-unfilled\2019-08-02\calibration\calib-charuco-camB.MOV
100%|█████████████████████████████| 5264/5264 [04:13<00:00, 20.76it/s]
4986 boards detected
C:\Users\jjw\Desktop\Anipose3D\hand-demo-unfilled\2019-08-02\calibration\calib-charuco-camC.MOV
100%|█████████████████████████████| 5265/5265 [03:55<00:00, 22.36it/s]
4724 boards detected
defaultdict(<class 'int'>, {('A', 'B'): 4937, ('B', 'A'): 4937})
Traceback (most recent call last):
File "c:\users\jjw\anaconda3\envs\anipose\lib\runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "c:\users\jjw\anaconda3\envs\anipose\lib\runpy.py", line 85, in run_code
exec(code, run_globals)
File "C:\Users\jjw\anaconda3\envs\Anipose\Scripts\anipose.exe_main.py", line 7, in
File "c:\users\jjw\anaconda3\envs\anipose\lib\site-packages\click\core.py", line 829, in call
return self.main(*args, **kwargs)
File "c:\users\jjw\anaconda3\envs\anipose\lib\site-packages\click\core.py", line 782, in main
rv = self.invoke(ctx)
File "c:\users\jjw\anaconda3\envs\anipose\lib\site-packages\click\core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "c:\users\jjw\anaconda3\envs\anipose\lib\site-packages\click\core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "c:\users\jjw\anaconda3\envs\anipose\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "c:\users\jjw\anaconda3\envs\anipose\lib\site-packages\click\decorators.py", line 73, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "c:\users\jjw\anaconda3\envs\anipose\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "c:\users\jjw\anaconda3\envs\anipose\lib\site-packages\anipose\anipose.py", line 116, in calibrate
calibrate_all(config)
File "c:\users\jjw\anaconda3\envs\anipose\lib\site-packages\anipose\common.py", line 168, in fun
return process_all(config, process_session, **args)
File "c:\users\jjw\anaconda3\envs\anipose\lib\site-packages\anipose\common.py", line 153, in process_all
output[past_folders] = process_session(config, path, **args)
File "c:\users\jjw\anaconda3\envs\anipose\lib\site-packages\anipose\calibrate.py", line 203, in process_session
verbose=True)
File "c:\users\jjw\anaconda3\envs\anipose\lib\site-packages\aniposelib\cameras.py", line 1563, in calibrate_rows
rvecs, tvecs = get_initial_extrinsics(rtvecs)
File "c:\users\jjw\anaconda3\envs\anipose\lib\site-packages\aniposelib\utils.py", line 173, in get_initial_extrinsics
pairs = find_calibration_pairs(graph, source=0)
File "c:\users\jjw\anaconda3\envs\anipose\lib\site-packages\aniposelib\utils.py", line 156, in find_calibration_pairs
for new in graph[item]:
TypeError: 'NoneType' object is not subscriptable
Hello,
I think I am having the same problem. Is there any update?
(Anipose-GPU) G:\Group2>anipose calibrate
Calibrating...
G:\Group2\week10
G:\Group2\week10\calibration\calibration.toml
G:\Group2\week10\calibration\cal2_20210208001_cam2.avi
100%|███████████████████████████████| 434/434 [00:21<00:00, 19.76it/s]
3 boards detected
G:\Group2\week10\calibration\cal2_20210208001_cam3.avi
100%|███████████████████████████████| 434/434 [00:26<00:00, 16.14it/s]
37 boards detected
defaultdict(<class 'int'>, {})
Traceback (most recent call last):
File "f:\programdata\anaconda\envs\anipose-gpu\lib\runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "f:\programdata\anaconda\envs\anipose-gpu\lib\runpy.py", line 85, in run_code
exec(code, run_globals)
File "F:\ProgramData\Anaconda\envs\Anipose-GPU_Sawako\Scripts\anipose.exe_main.py", line 7, in
File "f:\programdata\anaconda\envs\anipose-gpu\lib\site-packages\click\core.py", line 829, in call
return self.main(*args, **kwargs)
File "f:\programdata\anaconda\envs\anipose-gpu\lib\site-packages\click\core.py", line 782, in main
rv = self.invoke(ctx)
File "f:\programdata\anaconda\envs\anipose-gpu\lib\site-packages\click\core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "f:\programdata\anaconda\envs\anipose-gpu\lib\site-packages\click\core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "f:\programdata\anaconda\envs\anipose-gpu\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "f:\programdata\anaconda\envs\anipose-gpu\lib\site-packages\click\decorators.py", line 73, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "f:\programdata\anaconda\envs\anipose-gpu\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "f:\programdata\anaconda\envs\anipose-gpu\lib\site-packages\anipose\anipose.py", line 116, in calibrate
calibrate_all(config)
File "f:\programdata\anaconda\envs\anipose-gpu\lib\site-packages\anipose\common.py", line 168, in fun
return process_all(config, process_session, **args)
File "f:\programdata\anaconda\envs\anipose-gpu\lib\site-packages\anipose\common.py", line 153, in process_all
output[past_folders] = process_session(config, path, **args)
File "f:\programdata\anaconda\envs\anipose-gpu\lib\site-packages\anipose\calibrate.py", line 203, in process_session
verbose=True)
File "f:\programdata\anaconda\envs\anipose-gpu\lib\site-packages\aniposelib\cameras.py", line 1563, in calibrate_rows
rvecs, tvecs = get_initial_extrinsics(rtvecs)
File "f:\programdata\anaconda\envs\anipose-gpu\lib\site-packages\aniposelib\utils.py", line 173, in get_initial_extrinsics
pairs = find_calibration_pairs(graph, source=0)
File "f:\programdata\anaconda\envs\anipose-gpu\lib\site-packages\aniposelib\utils.py", line 156, in find_calibration_pairs
for new in graph[item]:
TypeError: 'NoneType' object is not subscriptable
What ended up working for me was making sure there were detections that overlapped between at least enough pairs of cameras such that each was included. To do this, I simply ran the code for calibration in the tutorial for aniposelib (copied into Spyder). Then I edited the list of videos such that it only did two at a time. The subsequent code is looking for a list of frames of the videos where the calibration board is shared between cameras.