İçeriğe geç

Hologram

T.C. kimlik kartı ve sürücü belgesinde hologram, kullanıcının belgeyi hafifçe eğerek çektiği kısa bir videoyla kontrol edilir. HologramController kamerayı gösterir, kullanıcıyı yönlendirir ve videoyu kaydeder.

import UIKit
import RKYC_iOS
import id_card_detection_ios_cnn
final class HologramViewController: UIViewController {
@IBOutlet weak var containerView: UIView!
private let hologramController = HologramController()
override func viewDidLoad() {
super.viewDidLoad()
HologramController.USE_CARD_DETECTION = true
HologramController.HOLOGRAM_CONTROL_ENABLED = true
HologramController.CONTROL_FACE_CAPTURE = true
HologramController.STOP_VIDEO_WHILE_RECORDING = true
hologramController.cardType = .NEW_TC_ID // sürücü belgesi için .DRIVER_LICENSE
hologramController.setDelegate(self)
hologramController.setFlashDelegate(self) // isteğe bağlı
containerView.addSubview(hologramController.view)
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
hologramController.startCapture()
}
}
extension HologramViewController: HologramDelegate {
func onVideoCaptured(videoURL: URL, rotate: Int) {
hologramController.stopCapture()
// Videoyu gönderin (aşağıda), ardından dosyayı silin
}
func onVideoStarted() { }
func onVideoCanceled() { /* belge alandan çıktı; kullanıcıdan tekrar denemesini isteyin */ }
func onFaceDetectionSuccess() { }
func onFaceDetectionIdle() { }
}
import ProveIDApiClient
guard let video = try? Data(contentsOf: videoURL) else { return }
let body = HologramDetectionInputModel(video: video.base64EncodedString(),
rotate: rotate,
cardType: "NEW-ID",
transactionId: transactionId)
IDServiceAPI.detectHologram(body: body) { result in
switch result {
case .success(let response):
let score = response.controlResults.first { $0.entryType == "HOLOGRAM" }?.entryScore
showHologramResult(score)
case .failure(let error):
showError(error)
}
}
try? FileManager.default.removeItem(at: videoURL) // videoyu cihazda bırakmayın
Belge HologramCardType cardType
T.C. kimlik kartı .NEW_TC_ID NEW-ID
Sürücü belgesi .DRIVER_LICENSE NEW-DRIVER
Diğer kimlik kartları .INTERNATIONAL_ID INTERNATIONAL

HologramFlashDelegate, video kaydedilirken kullanıcının ne yapması gerektiğini bildirir:

Metot Ne zaman
onFlashNotOnCard() Flaş yansıması belgenin üzerinde değil
onFlashCircleCompleted(circleIndex:) Hedef şekillerden biri tamamlandı
onFlashPositionUpdate(isFlashOnTarget:) Yansıma hedefe girdi veya hedeften çıktı
onFlashNeedsMoreFrames() Daha fazla hareket gerekiyor
onCardNotInHint() Belge çerçevenin dışında
onTooMuchGlare() Belgede fazla parlama var
onWrongCardType(detectedCardType:isBackside:) Farklı bir belge ya da belgenin diğer yüzü gösteriliyor
Ayar Açıklama
HologramController.USE_CARD_DETECTION Kayıttan önce belgeyi çerçevede algılar
HologramController.HOLOGRAM_CONTROL_ENABLED Kayıt sırasında hologramı cihaz üzerinde kontrol eder
HologramController.CONTROL_FACE_CAPTURE Belgedeki fotoğrafın görünmesini şart koşar
HologramController.STOP_VIDEO_WHILE_RECORDING Belge çerçeveden çıkarsa kaydı iptal eder
HologramController.HINT_DISPLAY_RATIO Çerçeve ipucunun boyutu (örnek: 1.5)
HologramController.MARGIN_RATIO İpucu çevresindeki pay (örnek: 0.2)
HologramController.OUTSIDE_OF_HINT_COLOR İpucunun dışındaki alanın rengi
HologramController.IS_TRADEMARK_LOGO_ON Techsign logosunu gösterir