【发布时间】:2018-10-24 13:00:10
【问题描述】:
我正在开发名为“Faciel Actions Units Detection”的项目 我正在使用 python2.7 和 opencv 2.4
错误:
pickle.PicklingError: Can't pickle <type 'cv2.Boost'>: it's not the same object as cv2.Boost
部分回溯,转录自a screenshot:
Loading classifier for action unit 27
Traceback (most recent call last):
File "C:\Python27\audetect-master\audetect-interactive.py", line 59, in <module>
main()
File "C:\Python27\audetect-master\audetect-interactive.py", line 18, in main
active_aus = detector.detect()
File "C:\Python27\audetect-master\detect.py", line 67, in detect
initial_points = self.ffdetector.locate_features(first)
File "C:\Python27\audetect-master\detect.py", line 183, in locate_features
thread.start()
File "C:\Python27\lib\multiprocessing\process.py", line 130, in start
self._popen = Popen(self)
File "C:\Python27\lib\multiprocessing\forking.py", line 227, in __init__
dump(process_obj, to_child, HIGHEST_PROTOCOL)
File "C:\Python27\lib\multiprocessing\forking.py", line 199, in dump
ForkingPickler(file, protocol).dump(obj)
File "C:\Python27\lib\pickle.py", line 224, in dump
self.save(obj)
File "C:\Python27\lib\pickle.py", line 331, in save
self.save_reduce(obj=obj, *rv)
File "C:\Python27\lib\pickle.py", line 425, in save_reduce
save(state)
File "C:\Python27\lib\pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Python27\lib\pickle.py", line 655, in save_dict
self._batch_setitems(obj.iteritems())
File "C:\Python27\lib\pickle.py", line 687, in _batch_setitems
save(v)
File "C:\Python27\lib\pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Python27\lib\multiprocessing\forking.py", line 67, in dispatcher
self.save_reduce(obj=obj, *rv)
File "C:\Python27\lib\pickle.py", line 401, in save_reduce
save(args)
File "C:\Python27\lib\pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Python27\lib\pickle.py", line 554, in save_tuple
save(element)
【问题讨论】:
-
请包含您尝试运行的 Python 代码的基本概念。
-
非常感谢您的关注这是函数 def detect(self): """ 返回活动 AU 的元组 """ first = self.sequence[0] last = self.sequence[ -1] initial_points = self.ffdetector.locate_features(first) final_points = self.ffdetector.locate_features(last) if not initial_points or not final_points: sys.stderr.write("Error: could not locate face in provided sequence") sys. stderr.write("\n") return [] aus = self.determine_aus(initial_points, final_points) return aus
-
@ToddPalmer 感谢您关注上述引发错误的函数
-
请不要使用代码截图和回溯。我们无法复制这些内容,视力障碍者的屏幕阅读器也无法阅读文本。错误信息和代码都是文本,请以文本形式发布。
-
我注意到回溯截图也不完整。
标签: python python-2.7 pickle python-multiprocessing cv2