Study Log: 尝试在原代码的基础上调用yolov5+deepsort 

  1. 先找到返回目标框的位置、class和置信度
    主要修改getDetectedInfo 从L43开始

在tkinter中显示Numpy数组(aNdarray)图像

[参考此文] (https://www.thinbug.com/q/53308708)

  1. from PIL import ImageTk, Image
  2. 把数组转换为Pillow对象
  3. 把Pillow对象转换为TKimage
PIL_Image = Image.fromarray(np.unit8(aNdarray))
tkImage = ImageTK.PhotoImage(Image = PIL_Image)

debug出现 torch\serialization.py No module named 'models'

  • 2022-03-13

跟踪了好久不知道什么原因,本以为自己的问题是很小众的,难以找到解答。结果一查,发现这里有解答。

Traceback (most recent call last):
...
  File "...\Anaconda3\envs\pytorch\lib\site-packages\torch\serialization.py", line 584, in load
    return _load(opened_zipfile, map_location, pickle_module, **pickle_load_args)
  File "...\Anaconda3\envs\pytorch\lib\site-packages\torch\serialization.py", line 842, in _load
    result = unpickler.load()
ModuleNotFoundError: No module named 'models'

原因分析如下. serialization.py 这个文件从字面意思上理解就是序列化和反序列化了.
由于python是解释性语言, 序列化的文件里面保存的 “命名空间” 是按照yolov5的根目录开始的.
反解析的时候根目录的起始点不同了,导致了找不到models
sys.path 就是为了解决这种目录错乱引起的问题而设.
关于sys.path 我就不详细解释了, 网上的说明很多… 这个很重要.
尤其是在规范化的项目下面. 这个很重要.

出现重复画框的问题

  • 用matplotlib看了一下,这个框是画在了检测结果上,从(L43) result = detector.feedCap(frame, func_status) 出来的时候就有多重框了。

    • 设置断点运行了n次以后再停下来
  • I found that the frames shown look alike.

  • I open the demo.py and found capture.read() is in the loop body.

  • I put ref, frame = capture.read() into the loop body and then it can work.

posted on 2022-03-15 10:10  Glovesize  阅读(201)  评论(0)    收藏  举报