Selamlar
Pythonda deepface yüz değiştirme ile ilgili biraz uğraştım. İnternette birçok video var kurulum ile ilgili. Bende az çok python bilgimle videolar yardımıyla deepfacelive kütüphanesini kurdum. Fakat numpy de bir uyumsuzluk sorunu yaşıyorum.
Uygulama çalışıyor fakat uygulama üzerinde kamera gibi herhangi bir fonksiyonu yaşadığımda aşağıdaki hatayı alıyorum
CameraSource error: module 'numpy' has no attribute 'int'.
`np.int` was a deprecated alias for the builtin `int`. To avoid this error in existing code, use `int` by itself. Doing this will not modify any behavior and is safe. When replacing `np.int`, you may wish to use e.g. `np.int64` or `np.int32` to specify the precision. If you wish to review your current use, check the release note link for additional information.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations Traceback (most recent call last):
File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\CSWBase.py", line 472, in _start_proc
self.on_start(*worker_start_args, **worker_start_kwargs)
File "C:\DeepFace\DeepFaceLive-master\apps\DeepFaceLive\backend\CameraSource.py", line 142, in on_start
cs.fps.set_number(state.fps if state.fps is not None else 0)
File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\Number.py", line 44, in set_number
if self._set_number(number, block_event=block_event):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\Number.py", line 21, in _set_number
if isinstance(number, (int, np.int, np.int8, np.int16, np.int32, np.int64)):
^^^^^^
File "C:\Users\ferha\anaconda3\Lib\site-packages\numpy\__init__.py", line 324, in __getattr__
raise AttributeError(__former_attrs__[attr])
AttributeError: module 'numpy' has no attribute 'int'.
`np.int` was a deprecated alias for the builtin `int`. To avoid this error in existing code, use `int` by itself. Doing this will not modify any behavior and is safe. When replacing `np.int`, you may wish to use e.g. `np.int64` or `np.int32` to specify the precision. If you wish to review your current use, check the release note link for additional information.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations. Did you mean: 'inf'?
AttributeError hatası alıyorum. Kimisi versiyon ile ilgili diyor. Şuanda numpy versiyonu 1.26.4. Versiyon değiştirmeyi denedim ama program çalışmaz oldu. Baştan kurulum yaptım.
Bu hatayı nasıl çözerim bilgisi olan var mı?
Kaynak kodunda numpy.int satırlarını numpy.int_ ya da sadece int olarak değiştirmeyi deneyiniz.
@elektronikhobi yaptım. Buradaki arkadaş da aynı sorunu yaşamış.
Burada anlatmış. Aynı sorun. Videodaki arkadaş gibi yaptım.
11:40 (https://youtu.be/twegj7a8I3Q?t=701) dan itibaren anlatıyor
Fakat bu seferde float ile ilgili uyumsuzluk sorunu yaşıyorum.
(base) C:\Windows\System32>cd C:\DeepFace\DeepFaceLive-master
(base) C:\DeepFace\DeepFaceLive-master>phyton main.py run DeepFaceLive --userdata-dir C:\DeepFace\DeepFaceLive-master
'phyton' is not recognized as an internal or external command,
operable program or batch file.
(base) C:\DeepFace\DeepFaceLive-master>python main.py run DeepFaceLive --userdata-dir C:\DeepFace\DeepFaceLive-master
Running DeepFaceLive.
FaceSwapInsight error: module 'numpy' has no attribute 'float'.
`np.float` was a deprecated alias for the builtin `float`. To avoid this error in existing code, use `float` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.float64` here.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations Traceback (most recent call last):
File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\CSWBase.py", line 472, in _start_proc
self.on_start(*worker_start_args, **worker_start_kwargs)
File "C:\DeepFace\DeepFaceLive-master\apps\DeepFaceLive\backend\FaceSwapInsight.py", line 66, in on_start
cs.device.select(state.device)
File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\DynamicSingleSwitch.py", line 99, in select
result = self._set_selected_idx(idx_or_choice)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\DynamicSingleSwitch.py", line 33, in _set_selected_idx
self._on_selected_evl.call(selected_idx, self.get_selected_choice() )
File "C:\DeepFace\DeepFaceLive-master\xlib\python\EventListener.py", line 24, in call
func(*args, **kwargs)
File "C:\DeepFace\DeepFaceLive-master\apps\DeepFaceLive\backend\FaceSwapInsight.py", line 90, in on_cs_device
cs.adjust_c.set_number(adjust_c)
File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\Number.py", line 44, in set_number
if self._set_number(number, block_event=block_event):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\Number.py", line 23, in _set_number
elif isinstance(number, (float, np.float, np.float16, np.float32, np.float64)):
^^^^^^^^
File "C:\Users\ferha\anaconda3\Lib\site-packages\numpy\__init__.py", line 324, in __getattr__
raise AttributeError(__former_attrs__[attr])
AttributeError: module 'numpy' has no attribute 'float'.
`np.float` was a deprecated alias for the builtin `float`. To avoid this error in existing code, use `float` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.float64` here.
The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations. Did you mean: 'cfloat'?
Bu aldığım hatadaki sorunu düzeltmek için neler yapmalıyım. Sorun yaşanan fonksiyonlar gösterilmiş ama hatayı çok da okuyamadım.
Başındaki np. ile başlayan bölümü kaldırıp, örneğin np.float yerine sadece float gelecek şekilde değiştirebilirsiniz.
np.float = float
np.int = int # int hatası
np.object = object # object hatası
np.bool = bool
Hocam bu tanımlamaları Number.py dosyası içerisinde tanımlamam yeterli mi? Genel bir uyumsuzluk var gibi.
Hata veren tüm kütüklerde düzeltmeyi deneyebilirsiniz.
Ancak bu yol zahmetli olabilir.
Bunun yerine kullandığınız işletim sistemi için Python çalışma ortamı oluşturmayı (https://medium.com/@sonsuz_dongu_youtube/windows-ortam%C4%B1na-python-ve-virtualenv-kurma-209f0257a564) deneyebilirsiniz.
Hocam anaconda ortamı bunu sağlamıyor mu? Şuan bilgisayarımda anaconda kurulu.
Fakat ben Number.py dosyasında np.float bulunan yerleri kaldırdım. Fakat hala eksikler var. Programı çalıştırdığımda örneğin kamerayı açtığımda program donup kapatılıyor. Ve aşağıdaki hatayı alıyorum.
(base) C:\DeepFace\DeepFaceLive-master>python main.py run DeepFaceLive --userdata-dir C:\DeepFace\DeepFaceLive-master
Running DeepFaceLive.
Traceback (most recent call last):
File "C:\DeepFace\DeepFaceLive-master\xlib\qt\widgets\QXFixedLayeredImages.py", line 70, in paintEvent
rect = QRect(0, h_half-ph_fit/2, w, ph_fit )
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: arguments did not match any overloaded call:
QRect(): too many arguments
QRect(aleft: int, atop: int, awidth: int, aheight: int): argument 2 has unexpected type 'float'
QRect(atopLeft: QPoint, abottomRight: QPoint): argument 1 has unexpected type 'int'
QRect(atopLeft: QPoint, asize: QSize): argument 1 has unexpected type 'int'
QRect(a0: QRect): argument 1 has unexpected type 'int'
(base) C:\DeepFace\DeepFaceLive-master>Process Process-5:
Traceback (most recent call last):
File "C:\Users\ferha\anaconda3\Lib\multiprocessing\process.py", line 314, in _bootstrap
self.run()
File "C:\Users\ferha\anaconda3\Lib\multiprocessing\process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\CSWBase.py", line 491, in _start_proc
self.send_msg('_stop', error=error, restart=self._req_restart)
File "C:\DeepFace\DeepFaceLive-master\xlib\mp\csw\CSWBase.py", line 433, in send_msg
def send_msg(self, name, *args, **kwargs): self._pmpi.send_msg(name, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\DeepFace\DeepFaceLive-master\xlib\mp\PMPI.py", line 34, in send_msg
self.pipe.send( (name, args, kwargs) )
File "C:\Users\ferha\anaconda3\Lib\multiprocessing\connection.py", line 206, in send
self._send_bytes(_ForkingPickler.dumps(obj))
File "C:\Users\ferha\anaconda3\Lib\multiprocessing\connection.py", line 289, in _send_bytes
ov, err = _winapi.WriteFile(self._handle, buf, overlapped=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
BrokenPipeError: [WinError 232] Boru kapatılıyor
Hocam numpy sürümüyle alakalı anladığım kadarıyla. Güncel sürümlerde sorun oluyor. Uyumlu olan sürümü yüklesek olmaz mı acaba? Hangi sürümden sonra bu sorun oluşuyor onuda bilmiyorum.
Seçili hata iletisinde işleve geçtiğiniz argümanların uyumlu olmadığını söylüyor.
h_half-ph_fit/2 yerine int(h_half-ph_fit/2) kullanmayı deneyebilirsiniz.
ArcoLinux (https://elektronik.vercel.app/arcolinux-ve-budgie-masaustu#son-masaustu) kullanıyoruz.
Anaconda'yı bilmiyoruz.
Üstteki iletide anlatıldığı gibi Python çalışma ortamı kurmayı deneyebilirsiniz.
Hocam deneyeyim ama sürekli başka sorunlar oluşuyor. Numpy sürümünü değiştirmeyi deneyeceğim.
Ben windows ortamında çalışıyorum. Linüx sıkıntı benim için.
Linux kurmanıza gerek yok.
Python öğrenen birisinin ilk öğrenmesi gereken konulardan bir tanesi çalışma ortamı kurulumudur.
Elle bağımlılıklarla uğraşmak yerine çalışma ortamı virtualenv tam olarak bunu yapıyor.
Örneğin çalıştırma ortamı oluşturduktan sonra
pip install -r requirements.txt
ile tüm paket bağımlılıklarını yükleyebilirsiniz.
Konuyu basitleştirmek için :
- Python çalışma ortamı (https://medium.com/@sonsuz_dongu_youtube/windows-ortam%C4%B1na-python-ve-virtualenv-kurma-209f0257a564) kurunuz.
- Çalışma ortamında basit bir flask uygulaması (https://elektronik.vercel.app/flask-ile-selam-verme) oluşturup, çalıştırınız.
- Yeni bir çalışma dizini ve python çalışma ortamı oluşturup, bu dizinde deepface (https://pypi.org/project/deepface/) kütüphanesini kurunuz.
pip install deepface
@elektronikhobi hocam birkaç gündür il dışındaydım yazamadım.
Anladığım kadarıyla temelde aynı kütüphaneyi kullanan bir çok derlenmiş farklı kütüphaneler çalışma ortamları var deepface için. Ben phyton ile sorun yaşayınca alternatif baktım aslında
deepfacelab ile devam ettim. Arayüzü olduğu için aslında nispeten daha kolay birde örnek bir kurulum videosu buldum. Bu arkadaş adım adım anlatmış. Ara ara vakit buldukça bakıyorum.
Deepfake de öğrenme mevzusu olduğunu yeni öğrendim. Bunu anlamaya çalışıyorum. Burada yapmış olan birçok uygulamada iki farklı videodan yüz fotoğrafları alınıyor. Fotoğraflar buradan seçiliyor. Anlamadığım öğrenme aşamasında harici fotoğraflar sisteme eklenebilir mi? Montajı yapılacak olan yüzün sadece birkaç fotosu elimizde var ise bu fotoğraflar ile sistemi eğitebiliyor muyuz.
Birde ciddi Ekran kartı istiyormuş
Selam.
Bu konuda bilgim yok.
Yüz tanıma teknolojisinden hoşlanmıyoruz.
Neden?
"Yetkililer, yüz tanıma teknolojisini kullanarak, kişilerin rızası olmadan onları tanımlayabilir ve takip edebilirler. Bu da hükümet gözetiminin artmasına yol açacak ve böylece kişisel gizlilik hakları aşınacaktır."
"Kişiye özgü davranışsal ve fiziksel verilerin toplanması ve kullanımı da bireysel mahremiyet ve güvenlik için bir tehdittir."
Sadece bir Python kütüphanesi olarak düşünürsek yukarıda çalışma ortamı kurulumunu anlattık.
Ticari bir uygulama geliştirmeyi düşünüyorsanız bir yazılım mühendisi ya da programcıdan yardım alabilirsiniz.
Haklısınız hocam. Bende sadece bunu bir Python kütüphanesi olarak soruyorum. Kütüphanenin çalışmasını anladım sayılır. Sadece eğitim mevzusu aklıma takıldı. Burada tek bir fotoğraf ile eğitme ile atıyorum 10 farklı fotoğraf ile eğitmenin farkı nasıl öğrenmeye çalışıyorum.