Detectron2 PlatoBlockchain 데이터 인텔리전스를 사용한 Python의 객체 감지 및 인스턴스 분할. 수직 검색. 일체 포함.

Detectron2를 사용한 Python의 객체 감지 및 인스턴스 분할

개요

물체 감지는 컴퓨터 비전의 넓은 분야이며 "야생에서" 컴퓨터 비전의 더 중요한 응용 프로그램 중 하나입니다. 한 쪽 끝에서는 작업을 수행하는 로봇이나 자율 주행 자동차 등 환경을 통해 에이전트를 탐색하는 자율 시스템을 구축하는 데 사용할 수 있지만 이를 위해서는 다른 분야와의 교차가 필요합니다. 그러나 이상 감지(예: 라인의 결함 제품), 이미지 내에서 물체 찾기, 얼굴 감지 및 물체 감지의 다양한 기타 응용 프로그램은 다른 필드와 교차하지 않고 수행할 수 있습니다.

객체 감지는 이미지 분류만큼 표준화되지 않았습니다. 새로운 개발의 대부분은 일반적으로 대규모 라이브러리 및 프레임워크가 아닌 개별 연구원, 유지 관리자 및 개발자가 수행하기 때문입니다. TensorFlow나 PyTorch와 같은 프레임워크에 필요한 유틸리티 스크립트를 패키징하고 지금까지 개발을 안내한 API 지침을 유지하는 것은 어렵습니다.

이로 인해 객체 감지가 이미지 분류보다 다소 복잡하고 일반적으로 더 장황하며(항상 그런 것은 아님) 접근하기 어렵습니다. 생태계의 주요 이점 중 하나는 모범 사례, 도구 및 사용 방법에 대한 유용한 정보를 검색하지 않는 방법을 제공한다는 것입니다. 물체 감지를 사용하면 대부분의 사람들이 좋은 그립을 얻기 위해 현장의 풍경에 대해 더 많은 연구를 해야 합니다.

Meta AI의 Detectron2 – 인스턴스 분할 및 객체 감지

디텍트론2 Meta AI(이전의 FAIR – Facebook AI Research)의 오픈 소스 객체 감지, 분할 및 포즈 추정 패키지입니다. 입력 이미지가 주어지면 레이블, 경계 상자, 신뢰도 점수, 마스크 및 객체의 골격을 반환할 수 있습니다. 이것은 저장소 페이지에 잘 표시되어 있습니다.

연구 프로젝트를 구축할 수 있는 상단에 라이브러리로 사용하기 위한 것입니다. 그것은 제공합니다 모델 동물원 RetinaNet과 함께 일반적으로 Mask R-CNN 및 R-CNN에 의존하는 대부분의 구현과 함께. 그들은 또한 꽤 괜찮은 선적 서류 비치. 예제 추론 스크립트를 실행해 봅시다!

먼저 종속성을 설치해 보겠습니다.

$ pip install pyyaml==5.1
$ pip install 'git+https://github.com/facebookresearch/detectron2.git'

다음으로 Detectron2 유틸리티를 가져올 것입니다. 여기에서 프레임워크 도메인 지식이 작용합니다. 다음을 사용하여 탐지기를 구성할 수 있습니다. DefaultPredictor 클래스를 설정하는 구성 개체를 전달하여 클래스를 만듭니다. 그만큼 Visualizer 결과 시각화를 지원합니다. MetadataCatalogDatasetCatalog Detectron2의 데이터 API에 속하며 내장 데이터셋과 메타데이터에 대한 정보를 제공합니다.

사용할 클래스와 함수를 가져오겠습니다.

import torch, detectron2
from detectron2.utils.logger import setup_logger
setup_logger()

from detectron2 import model_zoo
from detectron2.engine import DefaultPredictor
from detectron2.config import get_cfg
from detectron2.utils.visualizer import Visualizer
from detectron2.data import MetadataCatalog, DatasetCatalog

사용 requests, 이미지를 다운로드하여 로컬 드라이브에 저장합니다.

import matplotlib.pyplot as plt
import requests
response = requests.get('http://images.cocodataset.org/val2017/000000439715.jpg')
open("input.jpg", "wb").write(response.content)
    
im = cv2.imread("./input.jpg")
fig, ax = plt.subplots(figsize=(18, 8))
ax.imshow(cv2.cvtColor(im, cv2.COLOR_BGR2RGB))

결과 :

Detectron2 PlatoBlockchain 데이터 인텔리전스를 사용한 Python의 객체 감지 및 인스턴스 분할. 수직 검색. 일체 포함.

이제 구성을 로드하고 필요한 경우 변경 사항을 적용합니다(모델은 기본적으로 GPU에서 실행되므로 GPU가 없으면 구성에서 장치를 'cpu'로 설정해야 함).

cfg = get_cfg()

cfg.merge_from_file(model_zoo.get_config_file("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml"))
cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5
cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml")


여기에서 실행하려는 모델을 지정합니다. model_zoo. Mask R-CNN 아키텍처와 ResNet50 백본을 기반으로 하는 인스턴스 분할 모델을 가져왔습니다. 달성하고자 하는 것(키포인트 감지, 인스턴스 분할, 팬옵틱 분할 또는 객체 감지)에 따라 적절한 모델을 로드합니다.

마지막으로 다음을 사용하여 예측자를 구성할 수 있습니다. cfg 입력에서 실행하십시오! 그만큼 Visualizer 클래스는 이미지에 대한 예측을 그리는 데 사용됩니다(이 경우 분할된 인스턴스, 클래스 및 경계 상자:

predictor = DefaultPredictor(cfg)
outputs = predictor(im)

v = Visualizer(im[:, :, ::-1], MetadataCatalog.get(cfg.DATASETS.TRAIN[0]), scale=1.2)
out = v.draw_instance_predictions(outputs["instances"].to("cpu"))
fig, ax = plt.subplots(figsize=(18, 8))
ax.imshow(out.get_image()[:, :, ::-1])

마지막으로 다음과 같은 결과가 나타납니다.

모범 사례, 업계에서 인정하는 표준 및 포함된 치트 시트가 포함된 Git 학습에 대한 실습 가이드를 확인하십시오. 인터넷 검색 Git 명령을 중지하고 실제로 배움 이것!

Detectron2 PlatoBlockchain 데이터 인텔리전스를 사용한 Python의 객체 감지 및 인스턴스 분할. 수직 검색. 일체 포함.

더 나아가기 – 컴퓨터 비전을 위한 실용적인 딥 러닝

당신의 호기심 많은 성격이 당신을 더 멀리 가고 싶게 만드나요? 다음을 확인하는 것이 좋습니다. 코스: “파이썬을 이용한 컴퓨터 비전을 위한 실용적인 딥러닝”.

Detectron2 PlatoBlockchain 데이터 인텔리전스를 사용한 Python의 객체 감지 및 인스턴스 분할. 수직 검색. 일체 포함.

또 다른 컴퓨터 비전 과정?

우리는 MNIST 숫자나 MNIST 패션의 분류를 하지 않을 것입니다. 그들은 오래전에 자신의 역할을 다했습니다. 고급 블랙박스 아키텍처가 성능 부담을 짊어지게 하기 전에 너무 많은 학습 리소스가 기본 데이터 세트와 기본 아키텍처에 집중하고 있습니다.

우리는 집중하고 싶다 신비화, 실용적인 사항, 이해, 직관실제 프로젝트. 배우고 싶다 방법 당신은 변화를 만들 수 있습니다? 우리는 뇌가 이미지를 처리하는 방식부터 유방암에 대한 연구 수준의 딥 러닝 분류기를 작성하고 "환각"하는 딥 러닝 네트워크에 이르기까지, 실제 작업을 통해 원리와 이론을 가르치고, 컴퓨터 비전을 해결하기 위해 딥러닝을 적용하는 전문가가 되기 위한 노하우와 도구.

안에 무엇입니까?

  • 비전의 첫 번째 원칙과 컴퓨터가 "보는" 방법을 가르칠 수 있는 방법
  • 컴퓨터 비전의 다양한 작업 및 응용
  • 작업을 더 쉽게 만들어줄 무역 도구
  • 컴퓨터 비전용 데이터세트 찾기, 생성 및 활용
  • 컨볼루션 신경망의 이론과 응용
  • 데이터 세트의 도메인 이동, 동시 발생 및 기타 편향 처리
  • Transfer Learning 및 다른 사람의 교육 시간 및 계산 리소스를 귀하의 이익을 위해 활용
  • 최첨단 유방암 분류기 구축 및 교육
  • 주류 아이디어에 건강한 회의론을 적용하고 널리 채택된 기술의 의미를 이해하는 방법
  • t-SNE 및 PCA를 사용하여 ConvNet의 "개념 공간" 시각화
  • 기업이 더 나은 결과를 얻기 위해 컴퓨터 비전 기술을 사용하는 방법에 대한 사례 연구
  • 적절한 모델 평가, 잠재 공간 시각화 및 모델의 관심 식별
  • 도메인 연구 수행, 자체 데이터 세트 처리 및 모델 테스트 설정
  • 최첨단 아키텍처, 아이디어의 진행, 독창적인 요소 및 구현 방법
  • KerasCV – 최첨단 파이프라인 및 모델 생성을 위한 WIP 라이브러리
  • 논문을 구문 분석하고 읽고 직접 구현하는 방법
  • 용도에 따른 모델 선택
  • 엔드 투 엔드 머신 러닝 파이프라인 만들기
  • Faster R-CNN, RetinaNets, SSD 및 YOLO를 통한 물체 감지에 대한 풍경 및 직관
  • 인스턴스 및 시맨틱 분할
  • YOLOv5를 사용한 실시간 객체 인식
  • YOLOv5 객체 감지기 훈련
  • KerasNLP(업계 최강의 WIP 라이브러리)를 사용하여 Transformers 작업
  • Transformer를 ConvNet과 통합하여 이미지 캡션 생성
  • Deepdream

결론

인스턴스 세분화는 의미론적 세분화를 넘어 한 단계 더 나아가 클래스의 개별 인스턴스(person 1, person 2 등...)가 하나에 속하는지 여부보다는 질적 차이를 나타냅니다. 어떤 면에서는 픽셀 수준 분류입니다.

이 짧은 가이드에서는 Detectron2가 Mask R-CNN을 사용하여 API를 통해 인스턴스 분할 및 객체 감지를 쉽고 액세스할 수 있도록 하는 방법을 간략하게 살펴보았습니다.

타임 스탬프 :

더보기 스택카부스