opencv (얼굴인식) + RN "react-native-vision-camera” 1번째 시도

Seokhyun Yoon·2023년 9월 13일

방법 1

  • react-native-opencv3을 이용한 얼굴인식 모듈 개발

문제 1. opencv3 의존성 때문에 설치가 안된다.

1차적 해결 시도

: package.json 에서 peer dependency로 인해 충돌나는 부분들 때문에 정상설치는 npm으로 안되어 —force해도 같은 에러 났기에 yarn으로 다시 시도

error : Could not find com.quickbirdstudios:opencv:3.4.4-contrib when install

2차적 해결 시도

: com.quickbirdstudios:opencv:3.4.4-contrib 를 build.gradle에 추가함

3차적 해결 시도

: setting.gradle에 종속성 확인

include ':react-native-opencv3' // 추가
project(':react-native-opencv3').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-opencv3/android') // 추가

위처럼 추가 했지만 여전히 동일한 문제

4차적 해결 시도

: 아래 공식 라이브러리 github repo issue를 보고 해결방법대로 해봤지만

3.4.5도 추가해봤지만 별다른 바뀌는 것 없이 에러가 동일한 상황 “

Could not find com.quickbirdstudios:opencv:3.4.4-contrib when install · Issue #45 · adamgf/react-native-opencv3

5차적 해결 시도

GitHub - QuickBirdEng/opencv-android: Easy way to integrate OpenCv into your Android project via Gradle

공식 github repo issue의 질문에 위의 레포가 있음을 찾았다.

그리고 naming 규칙이 잘못된 줄도 모르고 gpt는 이전 규칙을 알려주었고,
나 역시 계속 그런 방식을 사용했다.

문제점 발견

그냥 react-native-opencv3 라이브러리 작성자가 android-opencv랑 ios-opencv를 이용해서 만든 것으로 판단을 내렸다. 이유는 아래 내용 package.json을 보면

  • package.json 내용 react-native-opencv3 라이브러리를 만든 작성자는 package.json을 이런식으로 써놨어
    {
    "_from": "git+https://github.com/adamgf/react-native-opencv3.git",
    "_id": "react-native-opencv3@1.0.5",
    "_inBundle": false,
    "_integrity": "",
    "_location": "/react-native-opencv3",
    "_phantomChildren": {},
    "_requested": {
    "type": "git",
    "raw": "react-native-opencv3@git+https://github.com/adamgf/react-native-opencv3.git",
    "name": "react-native-opencv3",
    "escapedName": "react-native-opencv3",
    "rawSpec": "git+https://github.com/adamgf/react-native-opencv3.git",
    "saveSpec": "git+https://github.com/adamgf/react-native-opencv3.git",
    "fetchSpec": "https://github.com/adamgf/react-native-opencv3.git",
    "gitCommittish": null
    },
    "_requiredBy": [
    "/"
    ],
    "_resolved": "git+https://github.com/adamgf/react-native-opencv3.git#b46c7bc760ce35019711b3ca6568ed4344dfdc28",
    "_spec": "react-native-opencv3@git+https://github.com/adamgf/react-native-opencv3.git",
    "_where": "/freelancing/Education/apps/react-native-opencv3-tests/SimpleGreyscale",
    "author": {
    "name": "Adam G. Freeman"
    },
    "bundleDependencies": false,
    "dependencies": {},
    "deprecated": false,
    "description": "OpenCV+contrib ported to React-Native for both iOS (v3.4.1) and Android (v3.4.4)",
    "keywords": [
    "react-native OpenCV"
    ],
    "license": "BSD",
    "main": "index.js",
    "name": "react-native-opencv3",
    "peerDependencies": {
    "react-native": "0.59.5",
    "react-native-fs": "^2.13.3"
    },
    "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
    },
    "version": "1.0.8"
    }
    근데 이사람은 android opencv를 보고 만들었나봐 근데 android opencv에서는 3.4.4버전이 없어
    즉 이 라이브러리를 다운받아서 실행하려고했지만 정작 이 라이브러리가 참조한 android opencv에는 3.4.4버전이 없는거지

결론은 3년전에 마지막 커밋인 라이브러리는 사라진 android-opencv의 릴리즈버전을 사용하고 있다.

maven(프로젝트 의존성관리 및 빌드 자동화 프레임워크)
https://mvnrepository.com/artifact/com.quickbirdstudios/opencv/3.4.4-contrib

이슈

여기서 opencv/3.4.4-contrib 파일이 존재하는 것을 찾기는 했음. 그럼 정상적으로 여기서 추가하라는대로 내용을 build.gradle에 추가해서 의존성을 추가하면 해결되야만 하는데 이 빌드 환경이 그걸 못 찾고 있는 것 같다.

file:/C:/OkeyDokey_Contest-sh-/OkeyDokeyContest/node_modules/react-native/android/com/quickbirdstudios/opencv/3.4.4-contrib/opencv-3.4.4-contrib.pom
       - file:/C:/OkeyDokey_Contest-sh-/OkeyDokeyContest/node_modules/jsc-android/dist/com/quickbirdstudios/opencv/3.4.4-contrib/opencv-3.4.4-contrib.pom
       - https://repo.maven.apache.org/maven2/com/quickbirdstudios/opencv/3.4.4-contrib/opencv-3.4.4-contrib.pom
       - https://dl.google.com/dl/android/maven2/com/quickbirdstudios/opencv/3.4.4-contrib/opencv-3.4.4-contrib.pom
       - https://www.jitpack.io/com/quickbirdstudios/opencv/3.4.4-contrib/opencv-3.4.4-contrib.pom

위와 같은 error message 발생
maven repository도 확인해봤는데

해당 내용 있음. build.gradle setting.gradle 전부 gpt가 말해준대로 종속성 추가했는데도 계속 같은 에러
특히 github 공식 문서 레포를 보면. 이러한 문제를 가진 사람이 동일하게 존재했었음.

profile
Web과 Cloud에 관심이 있습니다.

0개의 댓글