Kaynak: KB-docs
integrations/INT-KAMERA-yuz-tanima.md(tam kod taraması). KB-v1'de karşılığı yoktu (AUDIT §2.4).
INT-KAMERA — Web Kamerası ile Fotoğraf (AForge) ve Yüz Tanıma (Luxand FaceSDK)
Gerçeklik türü: AS-IMPLEMENTED (kod). Depo kökü:
/home/claude/erppro/ERPPRO. Gizlilik:FaceRecognition.vb:25içindeki FaceSDK lisans anahtarı kopyalanmamıştır.
1. Amaç
- Fotoğraf çekme: model/pırlanta/model kartı/personel kayıtlarına web kamerasından JPG kaydetmek (
AiWebCam). - Yüz tanıma: kameradaki yüzü Luxand FaceSDK izleyicisi ile tanıyıp, öğretilmiş kimlik (TC No) ile
Cari.Hesaplar'da hesabı bulup Cari Hesap kartını açmak (FrmFaceRecognition). AiCam(avicap32 tabanlı eski önizleme sınıfı) — kodda kullanılmıyor.
2. Protokol / taşıma
- AForge.Video.DirectShow (
ERPPRO.vbproj:119-127):FilterInfoCollection(VideoInputDevice)→VideoCaptureDevice.NewFrame→Bitmap; timer ilePicCapturegüncellenir; kaydetmeUtils.ResizeImage(640x480).Save(<ImageFolder>\<Klasör>\<Ad>.Jpg). VERIFIEDERPPRO/Form/Genel/AiWebCam.vb:25-55. - Luxand FaceSDK.NET (
ERPPRO.vbproj:262, x64):FSDK.ActivateLibrary(<anahtar>),FSDKCam.OpenVideoCamera(ilk kamera),FSDK.CreateTracker/FeedFrame/GetTrackerFacePosition/GetAllNames/SetName/LockID, izleyici belleğitracker1.datdosyasında (SaveTrackerMemoryToFile). VERIFIEDERPPRO/Class/Module/FaceRecognition.vb:6, 22-58, 83-126, 143. - avicap32 (
AiCam.vb:35-43,capCreateCaptureWindowA) — eski VFW; çağıran yok (VERIFIED grep). - DB: yüz şablonu DB'ye yazma kodu yorum satırında (
FaceRecognition.vb:173-191,Sistem.Trackertablosu); yalnız yerel dosya.
3. Giriş noktası sınıf ve metotlar
ERPPRO/Form/Genel/AiWebCam.vb:New(FileName, ParentFolder) :11-16;FileName = Program.UserSettings.ImageFolder & ParentFolder & FileName & ".Jpg" :19-23;Start :25-30(cihazIndex, F4 ile değiştirilir:64-66);Save :42-55(F2/Enter); Esc kapatır.- Çağıranlar:
FrmModelEkle.vb:254,FrmPirlantaEkle.vb:371,FrmModelKartıEkle.vb:138,FrmPersonelEkle.vb:286(F3),DataListGrid.vb:151(F3 →Picture.GetImage). ERPPRO/Class/Module/FaceRecognition.vb:Init(PictureEdit) :22-49(lisans → "Please run the License Key Wizard…", kamera yok → "Please attach a camera");DoWork :50-(döngü: kare al, yüz say, isim varsaFaceDetected(Identity); fareyle tıklanan yüzdepsRemember→InputBox("Your Identity")→SetName);Close :169.ERPPRO/Controls/FaceRecognition/FrmFaceRecognition.vb:Load → Init :19-21;FaceDetected → Showperson :22-25, 30-48:CheckButton1işaretliyseSelect Id From Cari.Hesaplar Where TcNo='<isim>' And IsDeleted='False'→FrmCariHesapEkle(RecordId) açılır.- Açılış:
FrmMainForm.vb:415-418(menüFACERECOGNITION, TopMost),FrmPersonelEkle.vb:292-295(BtnTarama).
4. Kullandığı tablolar / ayarlar
| Nesne | Kullanım | Kanıt |
|---|---|---|
Sistem.Clients.ImageFolder |
Fotoğraf kök klasörü (paylaşım yolu) | AiWebCam.vb:21; FrmUserSettings.vb:43, 93 |
Cari.Hesaplar.TcNo |
Yüz kimliği → hesap eşlemesi | FrmFaceRecognition.vb:32 |
tracker1.dat (çalışma klasörü) |
Öğrenilmiş yüz şablonları | FaceRecognition.vb:6, 53, 143 |
Sistem.Tracker |
Yorumda, kullanılmıyor | FaceRecognition.vb:174, 182 |
5. Hangi ekrandan tetiklenir
- Model / Pırlanta / Model Kartı / Personel ekle ekranlarında Kamera düğmesi veya F3; veri listelerinde F3.
- Ana menü Yüz Tanıma (
FACERECOGNITION) ve Personel kartı Tarama düğmesi.
6. Hata / başarısızlık davranışı
- Kamera yoksa
AiWebCam.StartCihazlar(Index)dizin hatası → yakalanmamış istisna (:26-27Try/Catch yok). VERIFIED - FaceSDK lisansı geçersiz → mesaj,
InitFalse; form açık kalır (görüntü yok). DoWorkdöngüsü istisnaları yutar (:134-135);Application.DoEventsile UI thread'i meşgul eder.Showperson: TcNo eşleşmezse sessiz (Id = 0 → Exit Sub). VERIFIED- Yüz kimliği
InputBoxile serbest metin girilir; TC No formatı doğrulanmaz.
7. Riskler
- Üçüncü parti lisans anahtarı kaynak kodda sabit (VERIFIED, değer kopyalanmadı).
- Biyometrik veri (
tracker1.dat) yerel, şifresiz, yedeklenmiyor; KVKK/özel nitelikli veri açısından değerlendirilmeli. INFERRED FaceSDK.NETyalnız AMD64 (ERPPRO.vbproj:262) — x86 derlemede çalışmaz. VERIFIEDCheckForIllegalCrossThreadCalls = False(FrmFaceRecognition.vb:3) — thread güvenliği devre dışı. VERIFIEDCari.Hesaplarsorgusu tanınan isimle string birleştirme (FrmFaceRecognition.vb:32) → serbest metin kimlik ile SQL enjeksiyonu mümkün. VERIFIED
8. Kanıt listesi
ERPPRO/Form/Genel/AiWebCam.vb:1-68;ERPPRO/Class/Module/AiCam.vb:1-60;ERPPRO/Class/Module/FaceRecognition.vb:1-192ERPPRO/Controls/FaceRecognition/FrmFaceRecognition.vb:1-66ERPPRO/Form/Genel/FrmMainForm.vb:415-418;ERPPRO/Form/Tanımlamalar/Personel/FrmPersonelEkle.vb:285-295;ERPPRO/Form/Tanımlamalar/Stok/FrmModelEkle.vb:254;FrmPirlantaEkle.vb:371;ERPPRO/Form/Siparis/FrmModelKartıEkle.vb:138;ERPPRO/Controls/Grid/DataListGrid.vb:146-157ERPPRO/ERPPRO.vbproj:119-127, 262;ERPPRO/Form/Settings/FrmUserSettings.vb:43, 93- Not:
kb_src/notes/integrations.jsoniçinde kayıt yok (yeni bulgu).
9. UNKNOWN
- Sahada yüz tanımanın gerçekten kullanılıp kullanılmadığı.
ImageFolderpaylaşımının yetkilendirmesi.
