CvDnn 으로 얼굴 감지하는데 4GB 메모리 pc에서 메모리 오류

“보호된 메모리를 읽거나 쓰려고 했습니다.
이것은 종종 다른 메모리가 손상되었음을 나타냅니다.”
이런 오류입니다.

전에는 HaarCascade, LbpCascade 로 얼굴감지하다가
인식률에 문제가 있어서 CvDnn으로 바꿔서
개발 끝내고 배포했더니 클라이언트 pc에서 오류가 발생합니다.
4GB RAM이라는 공통점이 있는 pc에서만…
모델파일도 바꿔봤는데 동일한 오류가 발생하네요
OpencvSharp4 버전도 최신이고

const string configFile = “weights.prototxt”;
const string faceModel = “res_ssd_300Dim.caffemodel”;

using var frame = Cv2.ImRead(@“c:\IdImage\IDImg.jpg”);
int frameHeight = frame.Rows;
int frameWidth = frame.Cols;
using var faceNet = CvDnn.ReadNetFromCaffe(configFile, faceModel);
using var blob = CvDnn.BlobFromImage(frame, 1.0, new OpenCvSharp.Size(300, 300), new Scalar(104, 117, 123), false, false);

faceNet?.SetInput(blob, “data”);

// 여기서 오류발생
using var detection = faceNet?.Forward(“detection_out”);

구글링해도 솔루션이 안나오네요.
tensorflow.net으로 바꿔볼까도 생각했는데
tensorflow.dll 파일용량이 200mb이라서 배포용량이 너무 커지고
혹시 같은 문제로 해결하신분의 도움이 필요합니다ㅠ

3개의 좋아요

여러 방법 테스트결과 :
4GB RAM x64비트 운영체제에서 문제 발생
정확히는 4GB, 16GB, 32GB 에 x64비트 운영체제 테스트결과
4GB RAM pc에서만 오류발생.
해결방법 1. 빌드를 32bit로 하면 오류안남
해결방법 2. OpenCvSharp4 버전이 4.5, 4.6에서 오류안남(4.7에서만 발생)
2번 방법으로 다운그레이드 해서 배포해야겠습니다.

7개의 좋아요

원인을 찾으셔서 다행이고 원인을 공유해주셔서 감사합니다.

6개의 좋아요