iOS11의 코어ML로 물체 인식(VGG16)을 설치해보세요(3분 요리)
7026 단어 coreML기계 학습WWDCios11DeepLearning
전제 조건
아래의 준비는 이미 다 되었다.
・Xcode beta9
・iOS11beta
구축을 위한 설정
예제 코드 가져오기
이 페이지 자원에 발표된 예시 코드를 가져옵니다.
https://developer.apple.com/videos/play/wwdc2017/506/
샘플 코드가 변하지 않더라도 MNIST(손으로 쓴 디지털 식별)의 학습 모델을 설정했기 때문에 종이에 쓴 숫자를 사진으로 찍으면 디지털 식별이 가능하다.하지만 숫자만으로도 외롭기 때문에 학습 패턴을 바꿔보자.
학습된 모델 가져오기
이 페이지 아래에서 VGG16을 다운로드하세요.
https://developer.apple.com/machine-learning/
VGG16에 대한 자세한 내용은 이쪽을 봐주세요.
그림에서 1000종의 물체를 분별할 수 있다.
http://aidiary.hatenablog.com/entry/20170104/1483535144
실시
먼저 VGG16에서 학습한 모델을 프로젝트로 드래그합니다.
ViewController.swift의classificationRequest의 학습 모형 파일을 MNISTClassfier에서 VGG16으로 변경합니다.
ViewController.swiftlet model = try VNCoreMLModel(for: VGG16().model)//MNISTClassfierからVGG16に書き換え
imagePickerController를 다음과 같이 변경합니다.(난폭하지만)
ViewController.swift func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
picker.dismiss(animated: true)
classificationLabel.text = "Analyzing Image…"
correctedImageView.image = nil
guard let uiImage = info[UIImagePickerControllerOriginalImage] as? UIImage
else { fatalError("no image from image picker") }
guard let ciImage = CIImage(image: uiImage)
else { fatalError("can't create CIImage from UIImage") }
let orientation = CGImagePropertyOrientation(uiImage.imageOrientation)
inputImage = ciImage.applyingOrientation(Int32(orientation.rawValue))
// Show the image in the UI.
imageView.image = uiImage
//読み込んだ画像をそのまま推論処理へ
let handler = VNImageRequestHandler(ciImage: inputImage)
do {
try handler.perform([classificationRequest])
} catch {
print(error)
}
/**
//MNIST用に紙の四隅を検知したり、色を白黒に落としたりの処理。今回とりあえずスキップ
// Run the rectangle detector, which upon completion runs the ML classifier.
let handler = VNImageRequestHandler(ciImage: ciImage, orientation: Int32(orientation.rawValue))
DispatchQueue.global(qos: .userInteractive).async {
do {
try handler.perform([self.rectanglesRequest])
} catch {
print(error)
}
}
**/
}
이상이면 완성됩니다.
느끼다
학습 모형만 바꾸면 상당히 간단하게 유행하는'인공지능 응용 프로그램'을 만들 수 있다.단지 추론 특화가 과감하게 끊어졌을 뿐이야!이런 인상.나처럼 깊이 있는 지식이 없는 사람도 간단하게 설치할 수 있고 학습 모형 제작 기법이 앞으로도 더욱 보급될 것을 감안하면 세계에서 기계 학습의 은혜가 가득한 날은 생각보다 가까울 것이다.
Reference
이 문제에 관하여(iOS11의 코어ML로 물체 인식(VGG16)을 설치해보세요(3분 요리)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shmyT/items/c3df53b4d6a7fb9f4ca1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이 페이지 자원에 발표된 예시 코드를 가져옵니다.
https://developer.apple.com/videos/play/wwdc2017/506/
샘플 코드가 변하지 않더라도 MNIST(손으로 쓴 디지털 식별)의 학습 모델을 설정했기 때문에 종이에 쓴 숫자를 사진으로 찍으면 디지털 식별이 가능하다.하지만 숫자만으로도 외롭기 때문에 학습 패턴을 바꿔보자.
학습된 모델 가져오기
이 페이지 아래에서 VGG16을 다운로드하세요.
https://developer.apple.com/machine-learning/
VGG16에 대한 자세한 내용은 이쪽을 봐주세요.
그림에서 1000종의 물체를 분별할 수 있다.
http://aidiary.hatenablog.com/entry/20170104/1483535144
실시
먼저 VGG16에서 학습한 모델을 프로젝트로 드래그합니다.
ViewController.swift의classificationRequest의 학습 모형 파일을 MNISTClassfier에서 VGG16으로 변경합니다.
ViewController.swiftlet model = try VNCoreMLModel(for: VGG16().model)//MNISTClassfierからVGG16に書き換え
imagePickerController를 다음과 같이 변경합니다.(난폭하지만)
ViewController.swift func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
picker.dismiss(animated: true)
classificationLabel.text = "Analyzing Image…"
correctedImageView.image = nil
guard let uiImage = info[UIImagePickerControllerOriginalImage] as? UIImage
else { fatalError("no image from image picker") }
guard let ciImage = CIImage(image: uiImage)
else { fatalError("can't create CIImage from UIImage") }
let orientation = CGImagePropertyOrientation(uiImage.imageOrientation)
inputImage = ciImage.applyingOrientation(Int32(orientation.rawValue))
// Show the image in the UI.
imageView.image = uiImage
//読み込んだ画像をそのまま推論処理へ
let handler = VNImageRequestHandler(ciImage: inputImage)
do {
try handler.perform([classificationRequest])
} catch {
print(error)
}
/**
//MNIST用に紙の四隅を検知したり、色を白黒に落としたりの処理。今回とりあえずスキップ
// Run the rectangle detector, which upon completion runs the ML classifier.
let handler = VNImageRequestHandler(ciImage: ciImage, orientation: Int32(orientation.rawValue))
DispatchQueue.global(qos: .userInteractive).async {
do {
try handler.perform([self.rectanglesRequest])
} catch {
print(error)
}
}
**/
}
이상이면 완성됩니다.
느끼다
학습 모형만 바꾸면 상당히 간단하게 유행하는'인공지능 응용 프로그램'을 만들 수 있다.단지 추론 특화가 과감하게 끊어졌을 뿐이야!이런 인상.나처럼 깊이 있는 지식이 없는 사람도 간단하게 설치할 수 있고 학습 모형 제작 기법이 앞으로도 더욱 보급될 것을 감안하면 세계에서 기계 학습의 은혜가 가득한 날은 생각보다 가까울 것이다.
Reference
이 문제에 관하여(iOS11의 코어ML로 물체 인식(VGG16)을 설치해보세요(3분 요리)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shmyT/items/c3df53b4d6a7fb9f4ca1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
let model = try VNCoreMLModel(for: VGG16().model)//MNISTClassfierからVGG16に書き換え
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
picker.dismiss(animated: true)
classificationLabel.text = "Analyzing Image…"
correctedImageView.image = nil
guard let uiImage = info[UIImagePickerControllerOriginalImage] as? UIImage
else { fatalError("no image from image picker") }
guard let ciImage = CIImage(image: uiImage)
else { fatalError("can't create CIImage from UIImage") }
let orientation = CGImagePropertyOrientation(uiImage.imageOrientation)
inputImage = ciImage.applyingOrientation(Int32(orientation.rawValue))
// Show the image in the UI.
imageView.image = uiImage
//読み込んだ画像をそのまま推論処理へ
let handler = VNImageRequestHandler(ciImage: inputImage)
do {
try handler.perform([classificationRequest])
} catch {
print(error)
}
/**
//MNIST用に紙の四隅を検知したり、色を白黒に落としたりの処理。今回とりあえずスキップ
// Run the rectangle detector, which upon completion runs the ML classifier.
let handler = VNImageRequestHandler(ciImage: ciImage, orientation: Int32(orientation.rawValue))
DispatchQueue.global(qos: .userInteractive).async {
do {
try handler.perform([self.rectanglesRequest])
} catch {
print(error)
}
}
**/
}
학습 모형만 바꾸면 상당히 간단하게 유행하는'인공지능 응용 프로그램'을 만들 수 있다.단지 추론 특화가 과감하게 끊어졌을 뿐이야!이런 인상.나처럼 깊이 있는 지식이 없는 사람도 간단하게 설치할 수 있고 학습 모형 제작 기법이 앞으로도 더욱 보급될 것을 감안하면 세계에서 기계 학습의 은혜가 가득한 날은 생각보다 가까울 것이다.
Reference
이 문제에 관하여(iOS11의 코어ML로 물체 인식(VGG16)을 설치해보세요(3분 요리)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shmyT/items/c3df53b4d6a7fb9f4ca1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)