아이폰과 머신러닝으로 치킨을 분류하는 부위.

아이폰과 머신러닝으로 재미있는 것을 만들고 싶었는데 이번에는 치킨을 분류했습니다.닭강정의 부위는 용골(가슴), 늑골(늑골), 날개(날개), 코뿔소(허리), 북(발) 등 5개 종류로 나뉜다.이 다섯 개 중 하나를 분류해라.

컨텐트


기계 학습의 간단한 설명
기계 학습은 배운 모형이 필요하다.모형 초상화를 그리면'억지로 하는 말 뭐야'가 결과로 출력됩니다.InceptionV3(Google), VGG16(Oxford 대학), ResNet50(Microsoft Research) 등 몇 가지 모델이 발표되었다.모델은 상상하기 어려워, 확장자.mlmodel의 100MB 정도의 파일입니다.
발표 모델에는 1000개의 카테고리가 있습니다.예를 들어 마우스, 컴퓨터 키보드, 컴퓨터 모니터 앞에 앉아 있는 사람은 술집으로 분류된다.그림을 주면 모든 분류를 합치면 100의 결과가 나온다.때로는 A가 80점, 때로는 A가 30점, B가 25점, C가 20점으로 미묘할 때도 있다.
이번에 할 일.
이번 치킨은 다섯 종류다.따라서 카메라로 사람을 포착해도 늑골 등이 나타난다.한 번의 분류는 어쨌든 오차가 발생하기 때문에 1초 두 번, 실시간으로 결과를 업데이트하는 규격을 설계했다.

개발 환경

  • XCode iOS Swift
  • CoreML Framework
    iOS 머신 러닝 라이브러리
  • Turi Create
    학습 모델을 생성합니다.Python으로 이동합니다.제작된 모델을 아이폰에 보낸다
  • 모델 생성하기


    단계
    1. Python 및 Turi Create를 설치합니다.
    2. 훈련 사진(닭고기 이미지)을 대량으로 수집한다.
    3. 이미지를 폴더로 나눕니다.
    4. 터미널에서python 모델.py를 실행합니다.
    5. 결국, 치킨.mlmodel이 생성됩니다.


    model.py
    import turicreate as tc
    import os
    
    data = tc.image_analysis.load_images('train', with_path=True, recursive=True)
    data['label'] = data['path'].apply(lambda path: os.path.basename(os.path.dirname(path)))
    data.save('Chicken.sframe')
    
    train_data, test_data = data.random_split(0.9)
    model = tc.image_classifier.create(train_data, target='label', max_iterations=100)
    
    predictions = model.predict(test_data)
    metrics = model.evaluate(test_data)
    print('metrics=' + str(metrics['accuracy']))
    
    model.save('Chicken.model')
    model.export_coreml('Chicken.mlmodel')
    
    해설
    트레인 폴더 밑에 폴더를 만들어 200장 정도를 훈련 초상화로 넣은 닭의 초상화.모델을 생성하면 폴더 이름이 분류 이름으로 변경됩니다.이번 예에서drum,keel,rib,thigh,wing 등 다섯 개의 폴더를 만들어 각각 그림을 넣는다.실행된 치킨.mlmodel을 XCode 항목으로 복사합니다.

    응용 프로그램


    나는 소스를 Github에 넣었다.Inceptionv3 모델이 포함되어 있습니다.자체 제작한 모형을 교체해서 사용하세요.
    https://github.com/koji4104/ImageDetector

    해설
    위의 예는 날개와 다리다.이 응용 프로그램은 매번 결과를 더해서 20을 줄인다.초당 두 번 처리하고, 없으면 2.5초는 0이다.

    총결산


    나는 이미지 분류가 가능하다고 생각한다.문외한이 분별할 수 없는 물건이라도 분류할 수 있다.이번 앱은 아이폰(아이패드)을 사용하기 때문에 휴대용으로 사용할 수 있다.얼굴 인증 등은 대기업이 하기 때문에 나 같은 작은 회사가 특정 업종과 시설에 특화된 이미지 분류를 하면 어떤 비즈니스가 생길 수 있다.
    나는 이미지 분류 실험을 몇 번 했는데, 어쨌든 학습 모형을 만드는 것은 매우 번거롭다.지난번에는 사진이 필요한 곳만 수동으로 잘라냈는데, 이번에는 정사각형을 중심으로 사진을 찍어서 가공하지 않고 사용했다.업무가 많이 줄었지만 폴더에 분배하는 것은 여전히 번거롭다.촬영과 동시에 파일 이름 등을 붙이는 데에는 성장 요소가 있다고 생각한다.

    좋은 웹페이지 즐겨찾기