fullseye

शुरुआत करें (5 मिनट में चालू)

日本語 · English · 简体中文 · 繁體中文 · 한국어 · Deutsch · हिन्दी

आपका काम कौन-सा है? (शुरू करने के तीन रास्ते)

Fullseye बहुत बड़ा है, इसलिए अगर आप तय न कर पाएँ कि सबसे पहले कौन-सी एक file खोलें, तो आप अटक जाते हैं। नीचे दिए गए examples नए लिखे गए demos नहीं हैं, बल्कि ऐसे examples हैं जिन्हें एक gate हर बार पहले से चलाता है (अगर कोई टूटता है, तो CI red हो जाता है)।

रास्ता किसके लिए 5 मिनट: बस चलाएँ 30 मिनट: अंदर का काम समझें आधा दिन: अपने data पर
Explainable visual inspection inspection / QA py -3.11 examples/poc_solder_fillet_aoi.py — solder fillet का AOI py -3.11 examples/poc_fabric_defect.py — misses और false alarms को अलग-अलग गिनें CAPABILITIES.md में “Detect” → Studio में अपनी image
Robots के लिए 3-D robotics / 3-D metrology py -3.11 examples/perception_pipeline.py — stereo → depth → point cloud → traversability py -3.11 examples/grasp_pose.py — 6-DoF pose और grasp direction के लिए point cloud को model पर fit करें EXAMPLES_3D.md → अपना cloud/mesh दें
Physics-based NDT X-ray / optics / metrology py -3.11 examples/ct_reconstruction.py — projection → reconstruction → mm में dimensions और defect count py -3.11 examples/poc_ct_void_morphology.py — एक अकेला pass/fail number shape को क्यों नहीं देख पाता CAPABILITIES.md में “Shape” → अपना volume

हर example के साथ ground truth होता है (closed-form या synthetic)। यह हमेशा null case (कुछ न करना) भी print करता है, ताकि आप खुद तय कर सकें कि कुछ “काम किया” या नहीं। हर चीज़ असल में कितनी validated है, इसका ledger MATURITY.md है — यह हाथ से नहीं लिखा जाता, बल्कि चलने वाले gates और असली data शामिल था या नहीं, इससे गिना जाता है।


यह गाइड Fullseye (working name imgevolve) को सबसे छोटे रास्ते से चालू करती है: install → अपनी पहली pipeline बनाएँ → चलाएँ → result देखें, ऐसे क्रम में जिसमें आप अटकें नहीं। पूरे setup के लिए INSTALL.md देखें, Studio की सारी सुविधाओं के लिए STUDIO_GUIDE.md, और code से चलाने के लिए ENGINE.md।

Fullseye एक image-processing operator library है जिसके inputs और outputs numpy arrays हैं, और इसके ऊपर एक HDevelop-style visual pipeline-design environment (Fullseye Studio) और एक execution runtime (FullseyeEngine) है। HALCON/HDevelop की भाषा में, यह “HDevelop में procedure जोड़ें, अपनी app से HDevEngine के ज़रिए call करें” वाले दो-चरण के ढाँचे को सीधे Python + numpy में दोहराता है।


1. Install (1 मिनट)

Prerequisite: Python 3.11 (Windows पर py -3.11, Linux पर python3.11)।

cd <path-to-fullseye>
py -3.11 -m pip install -e .          # core only (numpy + scipy; every op is listed, and an op that needs an optional backend names the missing extra when called)

Core सिर्फ़ numpy और scipy पर चलता है। OpenCV / scikit-image / Pillow जैसे extra backends optional हैं; अगर कोई install नहीं है, तो सिर्फ़ उसी backend के अपने operators बंद होते हैं (graceful degradation)। व्यवहार में image files पढ़ने और लिखने के लिए आपको कम से कम OpenCV या Pillow चाहिए, इसलिए इनमें से एक जोड़ने से काम आसान हो जाता है:

py -3.11 -m pip install -e ".[opencv]"    # image I/O + OpenCV-derived operators
py -3.11 -m pip install -e ".[all]"       # all backends (opencv, skimage, pil, wavelets, gpu, extra)
py -3.11 -m pip install -e ".[gui]"       # if you want Fullseye Studio (PySide6)

Extras की list और हर एक का मतलब INSTALL.md में इकट्ठा है। GUI इस्तेमाल करने के लिए आपको [gui] चाहिए (या [all] + [gui])।

आप install किए बिना भी आज़मा सकते हैं। Repository root (<path-to-fullseye>) को अपनी working directory बनाएँ और उस path को PYTHONPATH environment variable में डालें, तो import fullseye काम करेगा। लेकिन fullseye / fullseye-studio commands (console scripts) तभी उपलब्ध होते हैं जब आप pip install -e . चलाते हैं।


2. पहले एक अकेला operator चलाएँ (Python)

import fullseye, numpy as np

frame = np.clip(np.random.default_rng(0).random((64, 64)), 0, 1)   # gray H×W in [0,1]

edges = fullseye.apply(frame, "sobel_amp")     # image → image (gradient magnitude)
seg   = fullseye.apply(frame, "otsu")          # image → region (0/1 binary)
n     = fullseye.apply(seg,   "count_obj")     # region → feature (object count = Python float)
print(n)                                       # e.g. 316.0

Argument का क्रम apply(image, name, a, b) है — पहला argument array है, दूसरा op name। उल्टा pass करने पर 0.1.9 से TypeError: ... arguments look swapped के साथ रुक जाता है (0.1.8 तक यह numpy की असंबंधित “truth value of an array is ambiguous” error बन जाती थी)। a/b 0..1 में finite values हैं। String / None / NaN तुरंत TypeError/ValueError देते हैं; range से बाहर की values clamp होकर ledger में दर्ज होती हैं।

कौन-कौन से operators मौजूद हैं, यह आप ऐसे पता कर सकते हैं:

fullseye.op_names()                 # all registry operator names (860, as of 2026-09-03)
fullseye.list_ops(search="edge")    # substring search over name / HALCON name / category
fullseye.list_ops(sort="region")    # filter by input sort
fullseye.categories()               # 47 categories

3. Pipeline बनाएँ (कई operators को जोड़ना)

किसी array को क्रम से कई operators से गुज़ारना एक “pipeline” है: यह array को हर stage से गुज़ारकर अंतिम result लौटाती है।

# same a, b across all stages (same shape as the CLI)
out = fullseye.run_pipeline(frame, ["gaussian", "sobel_amp", "otsu"])

# when you want different knobs per stage (specify as (name, a, b) tuples)
out = fullseye.run_pipeline(frame, [("gaussian", 0.3, 0.5), ("otsu", 0.4, 0.5)])

यह “smooth → edge magnitude → Otsu threshold” है, image को binary edge map में बदलने का एक आम example। इसके साथ 20 तैयार combinations (recipes) आते हैं।

import recipes
recipes.names()                                   # list of recipe names
stages = recipes.stages("Edge — Sobel + Otsu")    # [(op, a, b), ...]
out = fullseye.run_pipeline(frame, stages)

4. इसे visually बनाएँ (Fullseye Studio)

Code लिखे बिना आप operators search करके उन्हें लगा सकते हैं, sliders से knobs घुमा सकते हैं, उन्हें एक-एक stage करके चला सकते हैं, और intermediate results देखते हुए pipeline जोड़ सकते हैं। GUI extras (pip install -e ".[gui]" = PySide6) ज़रूरी हैं।

py -3.11 studio.py          # or, if installed: fullseye-studio

इसमें तीन panels हैं।

जोड़ी गई pipeline को आप --ops string या Python code के रूप में Export (Ctrl+E) कर सकते हैं, और Save pipeline (Ctrl+Shift+S) से JSON के रूप में save कर सकते हैं। सारी सुविधाएँ और shortcuts STUDIO_GUIDE.md में हैं; app के अंदर F1 list दिखाता है।


5. Save की गई pipeline चलाएँ (CLI / code)

Studio में Save pipeline किया गया JSON (या एक --ops string) सीधे किसी file पर चलता है। यह “जो design किया उसे दोबारा लिखे बिना चलाएँ” वाला HDevEngine-equivalent path है।

# check the saved JSON's I/O and stages (structure check, no image)
py -3.11 imgevolve.py run edge.json --describe

# apply to an image and save the result
py -3.11 imgevolve.py run edge.json in.png --out result.png

# save the result of each stage (result_00.png, result_01.png, ...)
py -3.11 imgevolve.py run edge.json in.png --stepwise --out step.png

# export the pipeline as a standalone Python function
py -3.11 imgevolve.py run "gaussian,sobel_amp,otsu" --to-python

Code से चलाने के लिए FullseyeEngine इस्तेमाल करें (विवरण ENGINE.md में)।

import fullseye
eng = fullseye.FullseyeEngine.load("edge.json")     # or .from_ops("gaussian,sobel_amp,otsu")
print(eng.input_sort(), "->", eng.output_sort())    # image -> region
out = eng.run(frame)                                # numpy in, numpy out
steps = eng.run_stepwise(frame)                     # intermediate result of each stage (list)

6. CLI पर एक-एक करके लागू करें

जब आप किसी image file को सीधे process करना चाहते हैं, तो CLI सबसे तेज़ है (image I/O के लिए OpenCV या Pillow ज़रूरी)।

py -3.11 imgevolve.py ops --search edge                    # search operators
py -3.11 imgevolve.py has gauss_filter                     # is the HALCON name implemented + how to call it
py -3.11 imgevolve.py apply gauss_filter in.png out.png --a 0.6
py -3.11 imgevolve.py pipeline in.png out.png --ops "gaussian,sobel_amp,otsu"

apply / pipeline हर stage के लिए एक साझा --a / --b लेते हैं। जब आपको हर stage के लिए अलग knobs चाहिए, तो ऊपर वाला run_pipeline (Python) या Studio इस्तेमाल करें।


अगर आप अटक जाएँ

लक्षण क्या करें
ModuleNotFoundError: No module named 'fullseye' pip install -e . चलाएँ, या repo root को PYTHONPATH में डालें
fullseye / fullseye-studio command नहीं है console scripts pip install -e . से register होती हैं। Install नहीं किया है तो py -3.11 imgevolve.py ... / py -3.11 studio.py इस्तेमाल करें
Studio शुरू नहीं होता GUI extras install नहीं हैं। pip install -e ".[gui]" (PySide6)
apply / pipeline में cannot read ... image I/O के लिए OpenCV ([opencv]) या Pillow ([pil]) install करें
किसी extra backend का operator “unknown” है वह backend install नहीं है। .[skimage] .[wavelets] .[extra] आदि जोड़ें

ज़्यादा विस्तृत troubleshooting के लिए INSTALL.md देखें।

आगे क्या पढ़ें