$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
الحصول على موافقة لجنة الأخلاقيات (مجلس مراجعة المؤسسات) من مستشفى تام دوك (معرف البروتوكول: 24751791) قبل جمع البيانات بأثر رجعي. قم بإلغاء هوية جميع تقارير تخطيط القلب قبل التحليل عن طريق إزالة المعرفات المباشرة (مثل اسم المريض، رقم السجل الطبي، تاريخ الميلاد، وتاريخ الزيارة) واستبدالها بمعرف دراسة غير محدد. استخدم فقط بيانات تخطيط القلب غير المحددة للنموذج والتقييم.
1. إعداد المواد والبرمجيات والمدخلات
- قم باستنساخ مستودع المشروع وتحقق من هيكل الدليل، بما في ذلك الخطوط الأساسية/، core_binary/، البيانات/، التقييم/، المخرجات/، العامة/، النتائج/، الوزن/، والغلاف/، بالإضافة إلى README.md و requirements.txt (انظر توفر البيانات).
- أنشئ (أو تحقق من) مجلدات فرعية لوقت التشغيل تحت data/ و outputs/، بما في ذلك data/raw_pdf/، data/raw_scans/، المخرجات/الصور/المخرجات/المعالجة المسبقة/المخرجات/المعايرة/المخرج/yolo_boxes/، المخرجات/lead_crops/، المخرج/الأقنعة/المخرج/المسارات/المخرج/signals_csv/، والمخرجات/wfdb/.
- قم بتثبيت تبعيات البرمجيات المطلوبة (بايثون، OpenCV، NumPy/SciPy، PyTorch، Ultralytics (إطار تدريب/استدلالات YOLOv12) /YOLO، وWFDB) ونسخ المستندات في قائمة المواد (انظر جدول المواد).
- ضع مدخلات تخطيط القلب في البيانات/raw_pdf/ (تقارير PDF) أو data/raw_scans/ (مسح ورق).
- مسح تخطيط القلب الورقي بتقنية الرمادي عند 300 dpi وحافظ على الصفحة مسطحة لتجنب تشويه المنظور (انظر جدول المواد).
ملاحظة: استخدم سرعة الورق والكسب المبلغ عنه في طباعة تخطيط القلب عندما تكون متاحة (مثلا، 25 مم·ثانية⁻1، 10 مم·ملفولت⁻1)، بما يتوافق مع مرحلة المعايرة في سير العمل العام (انظر الشكل 1).
2. تحويل ملفات PDF تخطيط القلب إلى صور
- حول كل صفحة PDF لتخطيط القلب إلى صورة رمادية بدقة 300 نقطة في البوصة.
- احفظ كل صفحة .png (مفضلة) أو .tiff باستخدام ضغط بسيط للحفاظ على خطوط الشبكة وتفاصيل الموجة.
- تخزين الصور المصدرة في المخرجات/الصور/ والحفاظ على أسماء الملفات متسقة عبر جميع مراحل خط الأنابيب (انظر الشكل 2 لترتيب مدخلات تمثيلي).
3. معالجة مسبقة لصور تخطيط القلب (التباين والضوضاء)
- طبق CLAHE لتعزيز خطوط الشبكة الخافتة وتباين الموجات.
- تطبيق ضبابية غاوسية خفيفة لتقليل الضوضاء عالية التردد مع الحفاظ على حواف الموجة.
- اقص هوامش سوداء كبيرة مع الحفاظ على كامل مساحة محتوى تخطيط القلب (ECG).
- قم بتدوير الصورة إلى وضع عمودي إذا تم تدوير المسح/التصدير.
- احفظ المخرجات المعالجة مسبقا على المخرجات/المعالجة مسبقا/.
- افحص بصريا مجموعة فرعية من المخرجات وتأكد من أن خطوط الشبكة والآثار لا تزال قابلة للقراءة (انظر الشكل 2).
تحذير: تجنب التليين العدواني الذي يكسر أجزاء الموجة الرقيقة.
4. اكتشاف تباعد الشبكة ومعايرة مقياس (بكسل → مم)
- اكتشف تباعد الشبكات باستخدام اكتشاف خطوط هوف لخطوط الشبكة الرأسية/الأفقية.
- تقدير متوسط المسافة بين خطوط الشبكة المتجاورة (البكسلات) وتخزين قيمة تباعد الشبكة.
- إذا فشل اكتشاف خط هوف، قم بتقدير التباعد باستخدام تحليل فورييه لإسقاطات الصفوف/الأعمدة.
- إذا فشل تحليل فورييه للشبكات المنقطة، قم بتقدير التباعد باستخدام اكتشاف دائرة هوف (أو دورية النقاط).
- إذا فشلت جميع كواشف الشبكة، قم بتعيين قيمة تباعد احتياطية (مثل 59 بكسل) وقم بتحديد السجل للمراجعة.
- احسب تحويل البكسل إلى الملم باستخدام التباعد المكتشف ومعيار ورق تخطيط القلب (مثل 25 مم·ثانية⁻1 و10 مم·مفولت⁻1؛ انظر الشكل 1).
- أعد تكبير الصورة باستخدام الاستيفاء الثنائي المكعب لتطبيع المقياس عبر السجلات.
- احفظ الصور المعايرة في المخرجات/المعايرة/وقم بتخزين سجلات المعايرة لكل سجل.
ملاحظة: راجع الملف التكميلي 1 (الخوارزمية 1) للحصول على شبه كود موجه للتنفيذ لاكتشاف تباعد الشبكة ومعايرة البكسل إلى الفيزياء.
5. تحديد موقع المناطق ذات ال 12 رئيسا باستخدام YOLOv12
- قم بتحميل نموذج YOLOv12 المدرب لاكتشاف منطقة الرصاص (انظر الجدول 2 لمعلمات التدريب).
- استخدم تنفيذ إطار التدريب/الاستنتاج YOLOv12 دون تعديلات معمارية لاكتشاف وفصل المناطق ال12 الرئيسية في كل صورة تخطيط قلب للرقمنة لاحقا (انظر الشكل 1).
- شغل الاستدلال على كل صورة معايرة باستخدام حجم الاستدلال المحدد (مثلا، imgsz = 1024).
- تطبيق قمع غير أقصى وحافظ على صندوق الحدود الأعلى ثقة لكل فئة رئيسية.
- تصدير صناديق الحدود إلى المخرجات/yolo_boxes/ بصيغة قابلة للتكرار (TXT/CSV/JSON).
- حفظ صور التراكب التي تظهر صناديق وتسميات مناطق الرصاص المتوقعة للتحقق (انظر الشكل 3 والشكل 4).
- قم بوضع علامة على السجلات التي تحتوي على عملاء مفقودين، أو عملاء مكررين، أو تخطيط غير متسق واستبعدها من التصدير التلقائي إذا لزم الأمر.
ملاحظة: راجع الملف التكميلي 1 (الخوارزمية 2) للحصول على شيف كود لاستخراج منطقة الرصاص المعتمدة على YOLOv12 ومعالجة الصناديق بعد التشغيل.
6. تحديد أيقونات الرصاص باستخدام YOLOv12
- قم بتحميل نموذج YOLOv12 المدرب لاكتشاف أيقونة الرصاص (انظر الجدول 2 لمعلمات التدريب).
- استخدم نفس تنفيذ إطار التدريب/الاستدلال YOLOv12 دون تعديلات معمارية لاكتشاف أيقونات الرصاص للحصول على تحديد متين للرصاص في التخطيطات غير المتجانسة (انظر الشكل 1).
- شغل الاستدلال على كل صورة معايرة باستخدام حجم الاستدلال المحدد والعتبات المذكورة في النص الرئيسي.
- تطبيق قمع غير أقصى وحافظ على صندوق الحدود الأعلى ثقة لكل فئة أيقونة.
- تصدير صناديق الربط مع أيقونات الرصاص إلى المخرجات/yolo_boxes/ بصيغة قابلة للتكرار (TXT/CSV/JSON).
- احفظ صور تراكب تظهر صناديق الأيقونات المتوقعة وتسميات الفئات للتحقق (انظر الشكل 5 والشكل 6).
- تقييم أداء اكتشاف أيقونات الرصاص وتقرير النتائج الكمية وتعريفات المقاييس (انظر الجدول 5 والجدول 6).
- قارن اكتشاف منطقة الرصاص واكتشاف أيقونات الرصاص تحت نفس بروتوكول التقييم واتفاقية تقارير وقت التشغيل.
7. احصيل كل منطقة من مناطق الرصاص وتوحيد المحاصيل
- قم بقص كل منطقة رئيسية من الصورة المعايرة باستخدام إحداثيات صندوق الإحداثيات المتوقعة.
- تنمو محاصيل الوسادة إلى حجم ثابت عندما تختلف مناطق الرصاص بين التصاميم.
- حفظ الصور المقطوعة إلى المخرج/lead_crops/ باستخدام نظام التسمية: recordID_leadName.png.
- تأكد من وجود جميع ال 12 أسلاكا لكل سجل قبل استخراج الموجة (انظر الجدول 3 والجدول 4).
8. توليد قناع إشارة ثنائي لكل محصول رصاصي
- قم بتطبيع كل كثافة محصول رصاصي إلى نطاق شدة 8-بت.
- تطبيق العتبة التكيفية (أو عتبة أوتسو) لفصل مسار الموجة عن خطوط الخلفية/الشبكة.
- تطبيق تنظيف شكلي (مثل الفتح/الإغلاق) لقمع التشويهات المتبقية في الشبكة.
- سد الفجوات الصغيرة في المسار باستخدام الاستيفاء أو الحشو القائم على الاتصال.
- حفظ القناع الثنائي النهائي إلى المخرجات/الأقنعة/ وتحقق من جودة القناع على العينات الممثلة (انظر الشكل 7).
ملاحظة: راجع الملف التكميلي 1 (الخوارزمية 3) لتفاصيل توليد أقنعة منطقة الرصاص عند استخدام التمويه الموجه بصندوق الإحاطة.
9. استخلاص آثار الموجة (اختر إما استخراج المسار المعتمد على فيتيربي أو استخراج خط المركز المحسن.
- استخراج آثار الموجة باستخدام استخراج المسار المعتمد على فيتيربي
- احسب خريطة تكلفة على القناع الثنائي تعاقب الانقطاعات وتفضل البكسلات الشبيهة بالأثر.
- شغل فك تشفير Viterbi للحصول على مسار مقيد بالاستمرارية عبر المحصول الرئيسي.
- قم بتنعم المسار المستخرج واستيفاء الأجزاء المفقودة عند الحاجة.
- احفظ إحداثيات المسار إلى المخرجات/التراءات/ وحفظ مخططات التراكب للتحقق من صحتها (انظر الشكل 8).
ملاحظة: راجع الملف التكميلي 2 (الخوارزمية 4) لاستخراج الموجات المعتمدة على Viterbi وتصور الشيفرة الزائفة.
- استخراج أثر الموجة باستخدام تحسين استخراج الخط المركزي
- قم بتحويل القناع الثنائي إلى هيكل عظمي للحصول على مرشح خط مركزي.
- قم بإزالة الفروع الزائفة والمكونات المعزولة الناتجة عن ضوضاء الشبكة.
- قم بتنعم خط الوسط وفرض الاستمرارية من اليسار إلى اليمين.
- قم بالاستيفاء المقاطع القصيرة المفقودة للحفاظ على استمرارية الموجات.
- ضبط المعلمات الخاصة بمجموعة البيانات (مثل عتبات التثنائية، أحجام النواة الشكلية النموذجية، طول التقليم، قوة التنعيم، وحدود الاستيفاء الفجوة) لتحسين استمرارية خط المنتصف تحت ظروف التصوير لمجموعة بيانات الدراسة.
- احفظ إحداثيات خط المنتصف إلى المخرجات/المسارات/ وحفظ مخططات التراكب للتحقق (انظر الشكل 9).
ملاحظة: استخدم مبدأ خط المركز القياسي القائم على الهيكل العظمي وتحسين المتانة من خلال ضبط المعلمات الخاصة بمجموعة البيانات والمعالجة اللاحقة؛ راجع الملف التكميلي 2 (الخوارزمية 5) لاستخراج خط المركز، والتقويم/الاستيفاء، وإعدادات المعلمات، وشيفرة التخزين الزائفة.
10. تحويل مسارات البكسلات إلى إشارات معايرة (mV مقابل الوقت)
- تحويل إحداثيات البكسل y إلى جهد كهربائي باستخدام مقياس الشبكة المعايرة (10 مم·مفولت⁻1) وتحويل البكسل إلى الملم.
- تحويل إحداثيات البكسل X إلى زمن باستخدام مقياس الشبكة المعايرة (25 مم·ثانية⁻1) ورسم البكسل إلى الملم.
- أعد أخذ عينات كل مدخل إلى معدل عينة ثابت (مثل 100 هرتز) ومحاذاة جميع ال 12 ليدا في الوقت المناسب.
- احفظ إشارات 12 ليدا كملفات CSV في المخرجات/signals_csv/ مع أسماء ووحدات أعمدة متسقة.
11. تصدير سجلات WFDB والتحقق من صحة المخرجات
- تحويل كل ملف CSV مكون من 12 رئيسا إلى سجل WFDB باستخدام مكتبة WFDB.
- اكتب ملف رأس .hea الذي يحتوي على اسم السجلات، معدل العينة، مكسب الإشارة، الخطوط الأساسية، وأسماء الليد.
- اكتب ملف الإشارة .dat باستخدام نوع رقمي متسق (مثل 16-بت) واتفاقية وحدة (مثل μV).
- أعد تحميل كل سجل WFDB ورسم جميع الخيوط ال12 لتأكيد ترتيب القائد، والتسمية، ومحاذاة الزمن (انظر الشكل 10).
- احفظ مخرجات WFDB النهائية إلى المخرجات/wfdb/ وحفظ مخططات التحقق.
ملاحظة: راجع الملف التكميلي 3 (الخوارزمية 7) للحصول على تفاصيل التحويل من CSV إلى WFDB وكتابة التعليقات الاختيارية عندما تتوفر بيانات وصفية.
12. نقاط التفتيش وحل المشكلات
- ارفض أو علم أي سجل يحتوي على معايرة شبكة غير موثوقة، أو غياب في الرصاص، أو إعاقات شديدة.
- أعد تشغيل المعالجة المبدئية والمعايرة مع تعديل المعايير للسجلات التي تم تمييزها.
- أعد تشغيل الكشف مع تحديث عتبات الثقة/IoU عندما يتم تفويت التوصيلات.
- لخص أنماط الفشل ومعايير الاستبعاد في جدول النتائج.