VS Code로 OpenCV 할 때 MacBook 내장 Facetime 카메라를 사용할 수 없다 (보안 및 개인 정보 보호)

우선 최단 거리에서 OpenCV를 시도하고 싶습니다.



Mac/iMac에서 OpenCV를 해보고 싶은, 자, 우선 샘플을, 라고 생각했을 때, 이하와 같은 최단 순서로, 내장 Facetime 카메라를 사용한 얼굴 인식을 시험할 수 있습니다.

다운로드/설치


pip3 install -U opencv-contrib-python
curl -OL https://github.com/opencv/opencv/archive/4.5.1.zip
unzip 4.5.1.zip

실행


cd opencv-4.5.1/samples/python

python3 facedetect.py
カメラへのアクセスが必要と言われたら、[OK]を押して、もう一度実行。
自分の顔で試したり、そのへんに転がっていた集合写真などをかざせば、オッケー。
(escキーで終了)

(뱀족) 다운로드는, curl에서도 wget에서도 좋아하는 분으로.
wgetが好きな人は、curlの代わりに、
wget https://github.com/opencv/opencv/archive/4.5.1.zip
brewでwgetをインストールする場合は、
brew install wget

VS Code로 해보면 어때? ? ?



VS Code 편리! , 터미널도 VS Code로 되어 있는 사람도 많다고 생각합니다.
그래서, 보면, 응-, 라고 생각한 후, 에러가 나옵니다.
Abort trap: 6

무엇이 오류 메시지. 그럴 수 없다. 굿쿡 보면, C++코드 실행시 예외 발생, 이라는 것으로, 여러가지 국면에서 나오는 모양.

Facetime HD Camera 관계로 구그하면, 카메라의 액세스가 시스템에 의해 허가되어 있지 않기 때문에, 라고 하는 것. 「시스템 환경설정/시큐리티와 프라이버시/카메라」로, 등록하는 녀석이군요.




터미널 앱은 허용되기 때문에 오케이. 네, 여기에 VS Code도 등록하면 됩니다. 는 안 된다. .

예를 들어 브라우저를 통해 움직이고있는 Jupyter가 카메라/마이크를 사용하려고 할 때 Jupyter에서 요청이 나오고 여기에 등록하는 흐름을 할 수 있지만 VS Code는 그것이없는 것이 문제. 마이크에의 액세스도 마찬가지.

우선 해결책



터미널에서 code . 와 명령을 찍어 VS Code를 기동하면 된다. 카메라/마이크에의 액세스는, 기동한 부모의 액세스권이 적응된다, 라고 하는 것.

code 명령을 사용하려면,
1. VS Code 명령 팔레트에서 shell을 입력합니다.
2. 쉘 명령: PATH에 'code' 명령을 설치합니다.를 클릭하십시오.



근본적인 해결



VS Code의 GitHub.com 리포지토리에서 이슈가 올라갑니다.

'VSCode terminal doesn't allow/request permissions to access media devices #95062'
htps : // 기주 b. 코 m / 미 c로소 ft / vs 코데 / 이스에 s / 95062

문제는 인식되고 있지만 미해결.
근본적인 해결은 VS Code가 「보안과 프라이버시」에 등록되는 흐름을 구현하는 것. 잠시 기다려주세요.

위험한 고뇨고뇨



부드럽고 기다리는 것이 현명합니다. 그래도 원하는 사람은 데이터베이스를 직접 다시 작성합니다. 업데이트 등으로 데이터베이스의 구조가 변화하고 있으면 버그합니다.

복구 모드에서 시스템 재부팅(cmd+R 길게 누르기)하여 System Integrity Protection(SIP, 시스템 무결성 보호)을 일시적으로 비활성화하지 않으면 안 된다는 사이트를 많이 볼 수 있지만 불필요합니다.

대신 터미널에 전체 디스크 액세스 권한을 부여합니다.



Mojave는 이것으로 갈 수있었습니다.
# TCC.dbを念の為バックアップして、データベースを編集
cd ~/Library/Application\ Support/com.apple.TCC/
cp TCC.db TCC.db.bak
sqlite3 TCC.db  # sqlite>プロンプトが出ます。

# Mojaveの場合:
#  VS Codeにカメラへのアクセス権を追加
INSERT into access VALUES('kTCCServiceCamera',"com.microsoft.VSCode",0,1,1,NULL,NULL,NULL,'UNUSED',NULL,0,1541440109);

#  マイクへのアクセス権を追加
INSERT into access VALUES('kTCCServiceMicrophone','com.microsoft.VSCode',0,1,1,NULL,NULL,NULL,'UNUSED',NULL,0,1541440109);



BigSur의 경우 (죄송합니다, 검증되지 않았습니다. 누군가, 모험심과 관심이 있으면 추시를. 위험합니다.)
# BigSurの場合:

GitHub.comのissueでBigSurを検証してくれた人がいました。カラムが12から13に増えたようで、1を一つ増やしてオッケーだったようです。

INSERT into access VALUES('kTCCServiceCamera',"com.microsoft.VSCode",0,1,1,1,NULL,NULL,NULL,'UNUSED',NULL,0,1541440109);

INSERT into access VALUES('kTCCServiceMicrophone','com.microsoft.VSCode',0,1,1,1,NULL,NULL,NULL,'UNUSED',NULL,0,1541440109);

덤. OpenCV 샘플 실행



여러가지 시험하려면 메뉴 앱 demo.py를 사용한다.
cd opencv-4.5.1/samples/python
python3 samples/python/demo.py



읽기 어려웠기 때문에, 폰트나 폰트 사이즈를 변경했습니다. 각 엔트리가, 꽤 좋은 가감으로 만들어져 있어, 보로가 나옵니다. 좀 더 정비해도 좋을 것 같다. .


비디오 소스를 사용하는 데모로서 알기 쉬운 것은, 이런 곳에서.
facedetect.py
mosse.py
edge.py

기본적으로 esc 키로 종료, 되고 있는 것이 많을까?

레나씨 팬은, 튜토리얼에 있는, 이쪽등, 부디.
cd opencv-4.5.1/samples/python
python3 tutorial_code/ImgTrans/Filter2D/filter2D.py

좋은 웹페이지 즐겨찾기