2 पॉइंट द्वारा GN⁺ 4 일 전 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 2,207 GoPro साइकलिंग वीडियो को एक-एक करके दोबारा देखे बिना मनचाहा पल खोजने के लिए, लोकल ML मॉडल से वीडियो को इंडेक्स और सर्च किया गया, और best क्लिप्स को सीधे DaVinci Resolve timeline में भेजा गया
  • M1 Max जैसे Apple Silicon के लिए optimized desktop app वर्ज़न का उपयोग किया गया, जहाँ conversational agent से मनचाहा सीन माँगने पर उसे सीधे editing timeline में भेजा जा सकता है
  • OpenAI Whisper transcription, frame analysis (face recognition, object detection, on-screen text, scene description), और vector DB embedding से बना indexing pipeline तैयार किया गया
  • 628 वीडियो (668.68GB, 15 घंटे 13 मिनट 18 सेकंड) को इंडेक्स करने में कुल 67 घंटे 40 मिनट 42 सेकंड की computation लगी, यानी playback की तुलना में लगभग 4.4 गुना धीमी रफ़्तार
  • सारी प्रोसेसिंग लोकल GPU/CPU पर होती है, इसलिए cloud के बिना भी बड़े वीडियो library को सर्च किया जा सकता है; प्रोजेक्ट अभी development में है

प्रोजेक्ट का अवलोकन और प्रेरणा

  • साइकलिंग यात्राओं में शूट किए गए 2,207 GoPro वीडियो एक SSD में रखे हैं, और उनमें मौजूद यादगार पलों को सर्च करना लक्ष्य है, लेकिन पूरा फुटेज फिर से देखने का समय नहीं है
  • ज़्यादातर पल GoPro से रिकॉर्ड किए गए, लेकिन अच्छे हिस्से खोजने के लिए पूरा वीडियो अंत तक देखना पड़ता था, जो काफ़ी inefficient था
    • साइकलिंग रिकॉर्ड: 2024 में Casablanca→Imsouane (5 दिनों में 470KM से अधिक), 2023 में Kenitra→Tangier (डेढ़ दिन में 220KM), और इनके बीच mountain bike trips
  • इस समस्या को हल करने के लिए edit-mind प्रोजेक्ट खुद बनाया गया
  • GitHub Repo : https://github.com/IliasHad/edit-mind

डेस्कटॉप ऐप इस्तेमाल करने का कारण

  • Apple Silicon optimized desktop app वर्ज़न चुना गया, ताकि conversational agent से मनचाहा पल खोजकर उसे सीधे DaVinci Resolve editing timeline में भेजा जा सके
  • Docker वर्ज़न M1 Max GPU तक पहुँच नहीं पा रहा था, इसलिए GPU performance का उपयोग नहीं हो सका
  • डेस्कटॉप ऐप source-available वर्ज़न जैसी ही indexing process का उपयोग करता है

इंडेक्सिंग प्रक्रिया

  • डेस्कटॉप ऐप में folder चुनने पर, फ़ोन वीडियो से अलग पहचानने के लिए केवल GX से शुरू होने वाले वीडियो स्कैन किए जाते हैं
  • अगर audio track हो, तो पूरे वीडियो की transcription OpenAI Whisper मॉडल से की जाती है
  • इसके बाद frame analysis pipeline चलती है, जो वीडियो को 1 सेकंड के अंतराल (1fps) पर अलग-अलग scenes में विभाजित करती है
    • इसमें custom face data का उपयोग करने वाला face recognition plugin, object detection, on-screen text, shot type, और scene description शामिल हैं
  • scene के faces, transcription और description डेटा को document text के रूप में embed करके लोकल vector DB में स्टोर किया जाता है
    • scene frames को image search के लिए visual embedding vector DB collection में embed किया जाता है, और scene audio के साथ भी यही किया जाता है
  • आखिर में वीडियो जानकारी वाली 3 vector DB collections तैयार होती हैं
    • इनमें location metadata, camera name, पहचाने गए faces, detected objects, on-screen text, transcription, और हर scene का description शामिल है

प्रदर्शन संकेतक

  • ये आँकड़े डिवाइस के GPU और CPU से प्रोसेस किए गए इंडेक्सिंग वीडियो के हैं, और प्रोजेक्ट अभी development में होने के कारण ये अंतिम संख्याएँ नहीं हैं
  • कुल संकेतक

    • इंडेक्स किए गए वीडियो: 628
    • कुल वीडियो आकार: 668.68 GB
    • कुल वीडियो लंबाई: 15 घंटे 13 मिनट 18 सेकंड
    • कुल computation समय: 67 घंटे 40 मिनट 42 सेकंड
    • playback के मुकाबले गति: 0.22x, यानी playback से लगभग 4.4 गुना धीमी
    • विश्लेषित frames: 57,537
  • चरणवार विश्लेषण (कुल समय / प्रति वीडियो औसत / computation अनुपात)

    • transcription: 25 घंटे 12 मिनट 54 सेकंड / 2 मिनट 25 सेकंड / 37.3%
    • frame analysis: 24 घंटे 55 मिनट 42 सेकंड / 2 मिनट 23 सेकंड / 36.8%
    • scene creation: 48 मिनट 0 सेकंड / 5 सेकंड / 1.2%
    • text embedding: 36 मिनट 42 सेकंड / 5 सेकंड / 0.9%
    • visual embedding: 11 घंटे 49 मिनट 17 सेकंड / 1 मिनट 9 सेकंड / 17.5%
    • audio embedding: 4 घंटे 18 मिनट 7 सेकंड / 27 सेकंड / 6.4%

खोज सुविधाएँ

  • वीडियो के बारे में सवाल पूछने के लिए chat assistant वाला तरीका पसंद किया गया, और नतीजों को सीधे DaVinci Resolve editing timeline में भेजने का विकल्प दिया गया
  • advanced mode indexing में Qwen2.5-VL-7B-Instruct मॉडल का उपयोग करने पर वीडियो को बेहतर समझने और वर्णित करने वाला indexing data मिल सकता है, लेकिन indexing speed और धीमी हो जाती है
  • इसी तरीके से GoPro वीडियो को इंडेक्स करके, मनचाहे scenes को खोजकर और भेजकर अच्छे clips से वीडियो बनाया गया

हार्डवेयर तुलना और विकास की स्थिति

  • RTX 3060(12GB VRAM) जैसे NVIDIA GPU पर चलाने पर यह M1 Max से तेज़ था
  • प्रोजेक्ट अभी भी development में है, और accuracy तथा speed optimization के लिए सुधार जारी हैं

उपयोग किए गए prompt उदाहरण

  • "जब मैं साइकिल चला रहा हूँ तब कुत्ते के भौंकने वाले सभी clips खोजो"
  • "साइकिल यात्रा के सबसे scenic और interesting पलों से एक highlight reel बनाओ"
  • "हवा की आवाज़ सुनाई देने वाले सबसे तेज़ first-person riding moments दिखाओ और DaVinci Resolve में भेजो, duplicate scenes हटाओ"

1 टिप्पणियां

 
GN⁺ 4 일 전
Hacker News की राय
  • मज़ेदार बात यह है कि कुछ दिन पहले मैंने लगभग ठीक ऐसी ही मशीन पर मिलती-जुलती तकनीक से यही काम किया था, और वह भी HN के पहले पेज पर पहुँचा था
    https://news.ycombinator.com/item?id=48222733
    https://blog.simbastack.com/indexed-a-year-of-video-locally/
    मुझे इस प्रोजेक्ट के बारे में पता नहीं था, लेकिन यह दिलचस्प है
    मैं Framedex में फ़ोटो से जुड़े और फीचर जोड़ने की कोशिश कर रहा हूँ, और यह वाकई रोमांचक समय है क्योंकि अब लोकल पर बहुत कुछ किया जा सकता है

    • जब यह पोस्ट पहले पेज पर थी, तब कमेंट्स में मेरे प्रोजेक्ट का ज़िक्र हुआ था, इसलिए मैं देखने आया
      पोस्ट और प्रोजेक्ट दोनों अच्छे थे, और लोकल मॉडल लगातार बेहतर हो रहे हैं
  • लगता है कि ऐसे काम लोकल LLM से ही किए जाएँगे
    लोकल पर तेज़, छोटे और ताकतवर LLM चलाकर इमेज, वीडियो, दस्तावेज़ जैसे निजी डेटा को इंडेक्स किया जाएगा, समृद्ध किया जाएगा, और उसी समृद्ध metadata से टैग लगाया जाएगा
    अगर लोगों के हिसाब से समूह बनाना हो, तो tagged metadata खोजकर group किया जा सकता है; अगर विवरण के आधार पर इमेज ढूँढनी हो, तो tagged metadata काम आएगा; और अगर कुछ भी व्यवस्थित करना हो, तो tagged metadata का उपयोग होगा
    उम्मीद है कि इससे फ़ाइलें बेतरतीब होने की समस्या खत्म होगी

  • “frame analysis pipeline चलाने पर वीडियो अलग-अलग सीन में टूट जाता है (हर 1 सेकंड या 1fps)” और “57,537 analyzed frames” देखकर बात समझ में आती है
    यह संख्या “669GB” की तुलना में कहीं ज़्यादा यथार्थवादी लगती है, और लगता है कि वास्तव में प्रोसेस किए गए पूरे frames का आकार 10~30GB के आसपास रहा होगा
    मेरा मतलब काम को कमतर दिखाना नहीं है, बस घर पर खुद करने के लिए हमेशा practicality का हिसाब लगाना पड़ता है
    अगर “कुल compute time 67 घंटे 40 मिनट 42 सेकंड” है, तो सोच रहा हूँ कि क्या इसे तेज़ी से करने के लिए कोई paid option भी है। क्या बस GPU instance चला देना काफी होगा?

    • “669GB” वीडियो प्रोसेसिंग में इस्तेमाल हुए पूरे raw footage का कुल आकार है, और गति बढ़ाने के लिए हर frame को 720p तक घटाया गया था
      मेरी समझ यह है कि सटीक परिणाम के लिए पूरे original quality की ज़रूरत नहीं होती, और प्रयोगों में भी यही दिखा
      अभी तक 12GB VRAM वाला RTX 3060 जैसे NVIDIA GPU, M1 Max से काफी तेज़ रहा है, और मैं अभी भी speed और accuracy optimization पर काम कर रहा हूँ
  • उम्मीद से ज़्यादा आनंद देने वाला फीचर यह रहा कि Google Photos और Apple Photos पिछले 10 सालों में मेरी और मेरे बच्चों की ज़िंदगी के कई पलों को यादों की फ़ोटो और collections के रूप में भेजते हैं
    मुझे लगता है कि आगे चलकर AI के लिए इन्हें अच्छे छोटे highlight videos में बदलना और आसान होगा, इसलिए मैं बच्चों के और वीडियो रिकॉर्ड करने को लेकर काफी आशावादी हूँ

    • open source machine learning models लगातार बेहतर हो रहे हैं
      मैंने Spotify year-end recap जैसे वीडियो बनाने का एक छोटा प्रयोग किया था, और preview वीडियो यहाँ है https://github.com/IliasHad/edit-mind/tree/expirement/year-i...
    • क्या आप Android और iOS दोनों इस्तेमाल करते हैं, या अपनी personal media दोनों जगह रखने का कोई और फायदा है?
    • क्या Google का बच्चों का इस्तेमाल करके अपने models और ad algorithms को train करना ठीक है?
      कुछ साल बाद शायद आपको “BIKE BRAND की नई low-cost cycle देखिए, याद है आप पहले BIKE BRAND की cycle चलाते थे” जैसी चीज़ें मिलेंगी
  • DaVinci 21 में AI IntelliSearch नाम का indexing feature built-in आता है
    मेरा इरादा काम को कमतर दिखाने का नहीं है, लेकिन अब यह फीचर कई users के लिए उपलब्ध है। नाम में AI है, इसलिए शायद यह Studio users तक सीमित हो

    • मैंने अभी तक उसे देखा नहीं है
      लेकिन मैं यह ज़रूर जानना चाहता हूँ कि क्या वह वीडियो को cloud पर upload करता है, या processing लोकल पर होती है
      और क्या वीडियो के चेहरों पर label लगाने में मदद के लिए custom face data दिया जा सकता है
      लगता है Adobe Premiere Pro में भी ऐसा कुछ है, लेकिन मेरी जानकारी में वह cloud processing है
  • बहुत बढ़िया बनाया है
    agent के ज़रिए reels कैसे बनती हैं, यह मुझे पूरी तरह समझ नहीं आया
    क्या यह image links लेकर किसी video editing tool के लिए AI tool call करता है? या फिर किसी खास query पर index से लौटे timestamps के आगे-पीछे का हिस्सा काटकर जोड़ देता है?

    • मैं RAG इस्तेमाल कर रहा हूँ, और हर video scene को अलग-अलग vector database में index किया हुआ है
      agent को request देने पर Ollama model उस request को समझता है और उपलब्ध search tools का उपयोग करता है। search transcript text, faces, visual information, audio, या इनके combination से हो सकती है
      यह कुछ वैसा ही है जैसे Claude या ChatGPT online जानकारी खोजने के लिए web search tools का उपयोग करते हैं
      उसके बाद मैं Ollama से video scenes को filter कराता हूँ ताकि ज़्यादा सटीक और कम duplicate scenes मिलें, और फिर उन results को DaVinci Resolve API में भेजकर video clips की timeline बनाता हूँ
  • क्या यह porn collections पर भी काम करता है?

    • इस उपयोग के लिए शायद LoRA चाहिए होगा। porn content rejection बहुत सख्त है
      या फिर कोई uncensored model चाहिए होगा, लेकिन यह vision side पर भी काम करेगा या नहीं, पता नहीं
      scene detection और face recognition के लिए YOLO fine-tuning जैसी चीज़ भी जोड़नी पड़ सकती है
    • आप असली अहम सवाल पूछ रहे हैं
    • समझ नहीं आता यह वही सवाल हमेशा क्यों आता है
      जब मैंने Reddit पर यह प्रोजेक्ट डाला था, तब भी यही सवाल आया था
    • जब मैंने पहले Whisper इस्तेमाल किया था, तो उसने सिर्फ मारने की आवाज़ और कराह सुनकर भी बड़ी बारीकी वाली बातचीत hallucinate कर दी थी, और उसे लाइन-दर-लाइन उगलने में कई मिनट लगे थे
    • पता नहीं यह व्यंग्य है या नहीं, लेकिन मुझे यह दिलचस्प सवाल लगता है
      DeepSeek लोकल पर चल जाता है, तो क्या यह ऐसे उपयोग में काम आ सकता है?
  • यह जानकर हैरानी हुई कि M1 Max CPU ARM/SoC है और 11th gen Intel i9 से तुलना लायक माना जाता है
    क्या मैंने सही समझा? क्या Windows ARM भी ऐसे CPU पर मिलती-जुलती performance देगा?
    संदर्भ: https://www.cpubenchmark.net/compare/4585vs4245/Apple-M1-Max...

    • कई वजहों से यह apples-to-oranges तुलना के काफ़ी करीब है, लेकिन दो बातें सबसे ज़्यादा असर डालती हैं
      “unified” memory की वजह से पूरी system memory को VRAM की तरह इस्तेमाल किया जा सकता है, और एक dedicated AI सहायक accelerator भी है
      इन दो बातों की वजह से Apple Silicon chips इस तरह के AI model workloads में सामान्य CPU को बहुत पीछे छोड़ सकती हैं
      Windows ARM की तरफ़ क्या-क्या संभव है, यह मुझे नहीं पता, लेकिन इतना जानता हूँ कि वहाँ Qualcomm Snapdragon chips इस्तेमाल होती हैं
    • तुलना बनती ही नहीं
      M1 Max की memory bandwidth 400GB/s है, और नया top-end Snapdragon X2 Elite भी 228GB/s तक ही है
    • अगर “तुलनीय” से मतलब single-core performance है तो कुछ हद तक बात सही हो सकती है, लेकिन memory bandwidth में M1 Max लगभग 8 गुना तेज़ है
      wider bus और कम latency की वजह से सीधी टक्कर ही नहीं है
    • उस सवाल पर मैं न पुष्टि कर सकता हूँ, न खंडन
      मैंने अभी तक इस प्रोजेक्ट को Windows मशीन या ऐसे किसी सेटअप पर आज़माया नहीं है
  • https://archive.is/O6CLQ
    मैंने लेख पढ़ने की कोशिश की, लेकिन दुर्भाग्य से main website Cloudflare error दिखा रही थी

    • क्या आप फिर से जाँच सकते हैं? मुझे समझ नहीं आ रहा कि Cloudflare error क्यों दिख रही है
  • लिंक है https://iliashaddad.com/blog/i-indexed-669-gb-of-my-gopro-vi...