在复现代码时出现问题如下:
问题一:QObject::moveToThread: Current thread (0x558247080a00) is not the object's thread (0x558247900e40).Cannot move to target thread (0x558247080a00)
QObject::moveToThread: Current thread (0x558247080a00) is not the object's thread (0x558247900e40).
Cannot move to target thread (0x558247080a00)
原因:opencv安装版本太高,需要降低版本,卸载你原来的版本,重新安装
pip install opencv-contrib-python==4.1.2.30 -i https://pypi.tuna.tsinghua.edu.cn/simple
问题二:TypeError: tuple indices must be integers or slices, not tuple
Processing frame 00002
Traceback (most recent call last):
File "deep_sort_app.py", line 327, in <module>
args.max_cosine_distance, args.nn_budget, args.display)
File "deep_sort_app.py", line 270, in run
visualizer.run(frame_callback)
File "/home/milk/deep_sort/application_util/visualization.py", line 100, in run
self.viewer.run(lambda: self._update_fun(frame_callback))
File "/home/milk/deep_sort/application_util/image_viewer.py", line 305, in run
self._terminate = not self._user_fun()
File "/home/milk/deep_sort/application_util/visualization.py", line 100, in <lambda>
self.viewer.run(lambda: self._update_fun(frame_callback))
File "/home/milk/deep_sort/application_util/visualization.py", line 105, in _update_fun
frame_callback(self, self.frame_idx)
File "deep_sort_app.py", line 242, in frame_callback
tracker.update(detections)
File "/home/milk/deep_sort/deep_sort/tracker.py", line 69, in update
self._match(detections)
File "/home/milk/deep_sort/deep_sort/tracker.py", line 127, in _match
detections, iou_track_candidates, unmatched_detections)
File "/home/milk/deep_sort/deep_sort/linear_assignment.py", line 63, in min_cost_matching
if col not in indices[:, 1]:
TypeError: tuple indices must be integers or slices, not tuple
这个出现原因相当奇怪,代码一模一样,就是突然出现的,网上看到的基本都是修改代码段,很明显问题应该不是这里,重新建立文件夹,运行源代码,又可以运行了,把不能运行的代码复制过来之后也可以运行,环境也一样,问题出现在哪?
怀疑:可能是回调文件出现问题,去看def frame_callback(vis, frame_idx)了,发现问题再回来继续写
debug之后发现不是代码的问题,是引入的库包不行,降低scikit-learn版本,卸载原来的版本,重新安装
pip install scikit-learn==0.19.2
很好,出现新的问题:
问题三:
Processing frame 00001
Processing frame 00002
Processing frame 00003
Processing frame 00004
Traceback (most recent call last):
File "deep_sort_app.py", line 327, in <module>
args.max_cosine_distance, args.nn_budget, args.display)
File "deep_sort_app.py", line 270, in run
visualizer.run(frame_callback)
File "/home/milk/deep_sort/application_util/visualization.py", line 100, in run
self.viewer.run(lambda: self._update_fun(frame_callback))
File "/home/milk/deep_sort/application_util/image_viewer.py", line 305, in run
self._terminate = not self._user_fun()
File "/home/milk/deep_sort/application_util/visualization.py", line 100, in <lambda>
self.viewer.run(lambda: self._update_fun(frame_callback))
File "/home/milk/deep_sort/application_util/visualization.py", line 105, in _update_fun
frame_callback(self, self.frame_idx)
File "deep_sort_app.py", line 242, in frame_callback
tracker.update(detections)
File "/home/milk/deep_sort/deep_sort/tracker.py", line 81, in update
self._match(detections)
File "/home/milk/deep_sort/deep_sort/tracker.py", line 127, in _match
self.tracks, detections, confirmed_tracks)
File "/home/milk/deep_sort/deep_sort/linear_assignment.py", line 132, in matching_cascade
k for k in track_indices
File "/home/milk/deep_sort/deep_sort/linear_assignment.py", line 133, in <listcomp>
if tracks[k].time_since_update == 1 + level
NameError: name 'tracks' is not defined
博主疯狂了,他决定不再改了,就这样吧