https://github.com/salute-developers/salutevision-sdk-docs
https://github.com/salute-developers/salutevision-sdk-docs
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/salute-developers/salutevision-sdk-docs
- Owner: salute-developers
- Created: 2022-12-21T11:51:17.000Z (over 3 years ago)
- Default Branch: ios
- Last Pushed: 2023-10-25T10:12:36.000Z (over 2 years ago)
- Last Synced: 2025-01-08T08:40:06.066Z (over 1 year ago)
- Size: 15.6 KB
- Stars: 1
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SaluteVision Mobile iOS SDK
SDK алгоритмов компьютерного зрения для iOS.
SaluteVision Mobile SDK — это набор инструментов для решения задач с использованием компьютерного зрения.
iOS SDK доступен в виде `salutevision-mobile.xcframework`.
`xcframework` содержит зависимости под все целевые платформы и архитектуры в едином bundle.
**Поддерживаемые архитектуры:**
- ios-arm64,
- ios-x86_64-simulator,
- ios-arm64-simulator.
## Работа с изображениями
Работа с изображениями в iOS SDK осуществляется через класс `SaluteVisionImage`.
Чтобы создать экземпляр класса `SaluteVisionImage`, передайте данные в конструктор в формате `CVPixelBuffer`.
В большинстве случаев `CVPixelBuffer` — это стандартная сущность для получения фрейма с камеры телефона на платформе iOS.
Также `SaluteVisionImage` поддерживает конвертацию в `UIImage`.
## Подключение
Для подключения библиотеки и доступа к моделям SDK используется стандартная команда:
```
import SaluteVision
```
## Использование SDK
Вся функциональность SDK поставляется в виде независимых классов. Например: `BarcodeReader`, `MRZReader`.
Каждый из классов может быть использован как независимо, так и в сочетании с другими.
## Использование BarcodeReader
1. Создаем экземляр класса
```swift
private let reader = BarcodeReader(formats: [
.qr,
.aztec
])
```
2. Создаем экземпляр класса `SaluteVisionImage`
```swift
let pixelBuffer = ... // получить CVPixelBuffer
let image = SaluteVisionImage(pixelBuffer: pixelBuffer)
```
3. Можно использовать прямоугольник с областью интереса (ROI). Это та область изображения, в которой должен находится штрих-код.
```swift
let roi: CGRect = ... // получить CGRect, обозначающий область изображения со штрих-кодом
```
4. Запускаем процесс распознавания и обрабатываем результат
```swift
// C использованием ROI
guard let results = reader.read(from: image, inside: roi) else {
print("Empty result")
return
}
// Без использования ROI
guard let results = reader.read(from: image) else {
print("Empty result")
return
}
// вывод информации о типе первого распознанного штрих-кода и результат распознования
print("Result did obtain, type: \(results.first?.info?.format.rawValue), result: \(results.first?.info?.text)")
```
## Использование MRZReader
1. Создаем экземпляр класса
```swift
private let reader = MRZReader()
```
2. Добавляем наблюдателя (observer), который должен реализовывать `MRZReaderObserver` протокол.
```swift
reader.registerObserver(self)
```
3. Создаем экземпляр класса `SaluteVisionImage`
```swift
let pixelBuffer = ... // получить CVPixelBuffer
let image = SaluteVisionImage(pixelBuffer: pixelBuffer)
```
4. Запускаем процесс распознавания и получаем геометрию локализации (синхронно)
```swift
let geometries = reader.read(image: image)
```
5. Результат распознования приходит наблюдателю в методе `func infoDidObtain(_ info: MRZInfo)` (асинхронно)
```swift
func infoDidObtain(_ info: MRZInfo) {
print("His name is \(info.name) and he is from \(info.country)")
}
```
## Использование DocumentLocalization
1. Создаем экземляр класса
```swift
private let localization = DocumentLocalization()
```
2. Создаем экземпляр класса `SaluteVisionImage`
```swift
let pixelBuffer = ... // получить CVPixelBuffer
let image = SaluteVisionImage(pixelBuffer: pixelBuffer)
```
3. Запускаем процесс локализации и обрабатываем результат
```swift
let result = localization.predict(image: image, shouldCorrectAR: true)
if result.isStable, let cropImage = result.cropImage {
// Работаем с cropImage
}
```