Open yuanych opened 7 months ago
Code:
class EmotionDetector(pr.Processor): def init(self): super(EmotionDetector, self).init() self.detect = HaarCascadeFrontalFace(draw=False) self.crop = pr.CropBoxes2D() self.classify = MiniXceptionFER() self.draw = pr.DrawBoxes2D(self.classify.class_names)
def call(self, image): boxes2d = self.detect(image)['boxes2D'] cropped_images = self.crop(image, boxes2d) results = [] for cropped_image, box2D in zip(cropped_images, boxes2d): result = self.classify(cropped_image) box2D.class_name = result['class_name'] box2D.score = np.amax(result['scores']) info = {"name": box2D.class_name, "score": float(box2D.score), "x": int(box2D.coordinates[0]), "y": int(box2D.coordinates[1]), "w": int(box2D.width), "h": int(box2D.height)} results.append(info) # print(f"result: {result} box2D: {box2D}") return results
detect = EmotionDetector() def emotion_classifier(image_bytes, width, height): numpy_array = np.asarray(image_bytes) json_detect = detect(numpy_array)
Sometimes it throws an error, and sometimes it is correct.
error1: boxes2d = self.detect(image)['boxes2D'] ^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/abstract/processor.py", line 54, in call return self.call(*args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/pipelines/detection.py", line 454, in call boxes2D = self.predict(image) ^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/abstract/processor.py", line 54, in call return self.call(args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/processors/standard.py", line 247, in call return predict(x, self.model, self.preprocess, self.postprocess) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/backend/standard.py", line 268, in predict y = model(x) ^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/models/detection/haar_cascade.py", line 47, in call boxes = self.model.detectMultiScale(args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cv2.error: OpenCV(4.8.1) /Users/xperience/GHA-OpenCV-Python/_work/opencv-python/opencv-python/opencv/modules/objdetect/src/cascadedetect.hpp:46: error: (-215:Assertion failed) 0 <= scaleIdx && scaleIdx < (int)scaleData->size() in function 'getScaleData'
error2: json_detect = detect(numpy_array) ^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/abstract/processor.py", line 54, in call return self.call(*args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/yuanych/research/ZLMediaKit-8.0/ZLMediaKit/Python/emotion_classifier.py", line 18, in call boxes2d = self.detect(image)['boxes2D'] ^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/abstract/processor.py", line 54, in call return self.call(*args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/pipelines/detection.py", line 454, in call boxes2D = self.predict(image) ^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/abstract/processor.py", line 54, in call return self.call(args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/processors/standard.py", line 247, in call return predict(x, self.model, self.preprocess, self.postprocess) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/backend/standard.py", line 268, in predict y = model(x) ^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/models/detection/haar_cascade.py", line 47, in call boxes = self.model.detectMultiScale(*args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cv2.error: vector
I have similar errors, but mainly regarding the outdated argument 'lr' in the model file. Did you have such error?
Code:
class EmotionDetector(pr.Processor): def init(self): super(EmotionDetector, self).init() self.detect = HaarCascadeFrontalFace(draw=False) self.crop = pr.CropBoxes2D() self.classify = MiniXceptionFER() self.draw = pr.DrawBoxes2D(self.classify.class_names)
detect = EmotionDetector() def emotion_classifier(image_bytes, width, height): numpy_array = np.asarray(image_bytes) json_detect = detect(numpy_array)
Sometimes it throws an error, and sometimes it is correct.
error1:
boxes2d = self.detect(image)['boxes2D'] ^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/abstract/processor.py", line 54, in call return self.call(*args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/pipelines/detection.py", line 454, in call boxes2D = self.predict(image) ^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/abstract/processor.py", line 54, in call return self.call(args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/processors/standard.py", line 247, in call return predict(x, self.model, self.preprocess, self.postprocess) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/backend/standard.py", line 268, in predict y = model(x) ^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/models/detection/haar_cascade.py", line 47, in call boxes = self.model.detectMultiScale(args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cv2.error: OpenCV(4.8.1) /Users/xperience/GHA-OpenCV-Python/_work/opencv-python/opencv-python/opencv/modules/objdetect/src/cascadedetect.hpp:46: error: (-215:Assertion failed) 0 <= scaleIdx && scaleIdx < (int)scaleData->size() in function 'getScaleData'
error2: json_detect = detect(numpy_array) ^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/abstract/processor.py", line 54, in call return self.call(*args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/yuanych/research/ZLMediaKit-8.0/ZLMediaKit/Python/emotion_classifier.py", line 18, in call boxes2d = self.detect(image)['boxes2D'] ^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/abstract/processor.py", line 54, in call return self.call(*args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/pipelines/detection.py", line 454, in call boxes2D = self.predict(image) ^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/abstract/processor.py", line 54, in call return self.call(args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/processors/standard.py", line 247, in call return predict(x, self.model, self.preprocess, self.postprocess) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/backend/standard.py", line 268, in predict y = model(x) ^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/paz/models/detection/haar_cascade.py", line 47, in call boxes = self.model.detectMultiScale(*args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cv2.error: vector