I get this cv2 error whenever I try to run the extract.py script
Code: Select all
cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-52oirelq\opencv\modules\dnn\src\caffe\caffe_io.cpp:1121: error: (-2:Unspecified error) FAILED: fs.is_open(). Can't open "C:\Users\Gaël\Documents\faceswap-master\plugins\extract\detect\.cache\resnet_ssd_v1.prototext" in function 'cv::dnn::ReadProtoFromTextFile'
I tried from the cmd and gui using python 3.7.1
I tried cv2 4.2.0 and 4.4.0
Trying with mtcnn instead of cv2-dnn yields a similar error
Here's the full log file
Code: Select all
10/13/2020 17:13:55 MainProcess MainThread _config load_module DEBUG Added defaults: mask.vgg_obstructed
10/13/2020 17:13:55 MainProcess MainThread config handle_config DEBUG Handling config
10/13/2020 17:13:55 MainProcess MainThread config check_exists DEBUG Config file exists: 'C:\Users\Gaël\Documents\faceswap-master\config\extract.ini'
10/13/2020 17:13:55 MainProcess MainThread config load_config VERBOSE Loading config: 'C:\Users\Gaël\Documents\faceswap-master\config\extract.ini'
10/13/2020 17:13:55 MainProcess MainThread config validate_config DEBUG Validating config
10/13/2020 17:13:55 MainProcess MainThread config check_config_change DEBUG Default config has not changed
10/13/2020 17:13:55 MainProcess MainThread config check_config_choices DEBUG Checking config choices
10/13/2020 17:13:55 MainProcess MainThread config check_config_choices DEBUG Checked config choices
10/13/2020 17:13:55 MainProcess MainThread config validate_config DEBUG Validated config
10/13/2020 17:13:55 MainProcess MainThread config handle_config DEBUG Handled config
10/13/2020 17:13:55 MainProcess MainThread config __init__ DEBUG Initialized: Config
10/13/2020 17:13:55 MainProcess MainThread config get DEBUG Getting config item: (section: 'global', option: 'allow_growth')
10/13/2020 17:13:55 MainProcess MainThread config get DEBUG Returning item: (type: <class 'bool'>, value: False)
10/13/2020 17:13:55 MainProcess MainThread _base _get_model DEBUG No model_filename specified. Returning None
10/13/2020 17:13:55 MainProcess MainThread _base __init__ DEBUG Initialized _base Mask
10/13/2020 17:13:55 MainProcess MainThread _base __init__ DEBUG Initialized Mask
10/13/2020 17:13:55 MainProcess MainThread pipeline _set_parallel_processing DEBUG No GPU detected. Enabling parallel processing.
10/13/2020 17:13:55 MainProcess MainThread pipeline _set_phases DEBUG Num plugins for phase: 0, scaling: 1.0, vram required: 0.0
10/13/2020 17:13:55 MainProcess MainThread pipeline _set_phases DEBUG Required: 0.0, available: 1792. Adding phase 'detect' to current phase: []
10/13/2020 17:13:55 MainProcess MainThread pipeline _set_phases DEBUG Num plugins for phase: 0, scaling: 1.0, vram required: 0.0
10/13/2020 17:13:55 MainProcess MainThread pipeline _set_phases DEBUG Required: 0.0, available: 1792. Adding phase 'align' to current phase: ['detect']
10/13/2020 17:13:55 MainProcess MainThread pipeline _set_phases DEBUG Num plugins for phase: 0, scaling: 1.0, vram required: 0.0
10/13/2020 17:13:55 MainProcess MainThread pipeline _set_phases DEBUG Required: 0.0, available: 1792. Adding phase 'mask_0' to current phase: ['detect', 'align']
10/13/2020 17:13:55 MainProcess MainThread pipeline _set_phases DEBUG Num plugins for phase: 0, scaling: 1.0, vram required: 0.0
10/13/2020 17:13:55 MainProcess MainThread pipeline _set_phases DEBUG Required: 0.0, available: 1792. Adding phase 'mask_1' to current phase: ['detect', 'align', 'mask_0']
10/13/2020 17:13:55 MainProcess MainThread pipeline _set_phases DEBUG Total phases: 1, Phases: [['detect', 'align', 'mask_0', 'mask_1']]
10/13/2020 17:13:55 MainProcess MainThread pipeline _set_extractor_batchsize DEBUG Backend is not Nvidia. Not updating batchsize requirements
10/13/2020 17:13:55 MainProcess MainThread queue_manager add_queue DEBUG QueueManager adding: (name: 'extract0_detect_in', maxsize: 1)
10/13/2020 17:13:55 MainProcess MainThread queue_manager add_queue DEBUG QueueManager added: (name: 'extract0_detect_in')
10/13/2020 17:13:55 MainProcess MainThread queue_manager get_queue DEBUG QueueManager getting: 'extract0_detect_in'
10/13/2020 17:13:55 MainProcess MainThread queue_manager get_queue DEBUG QueueManager got: 'extract0_detect_in'
10/13/2020 17:13:55 MainProcess MainThread queue_manager add_queue DEBUG QueueManager adding: (name: 'extract0_align_in', maxsize: 1)
10/13/2020 17:13:55 MainProcess MainThread queue_manager add_queue DEBUG QueueManager added: (name: 'extract0_align_in')
10/13/2020 17:13:55 MainProcess MainThread queue_manager get_queue DEBUG QueueManager getting: 'extract0_align_in'
10/13/2020 17:13:55 MainProcess MainThread queue_manager get_queue DEBUG QueueManager got: 'extract0_align_in'
10/13/2020 17:13:55 MainProcess MainThread queue_manager add_queue DEBUG QueueManager adding: (name: 'extract0_mask_0_in', maxsize: 1)
10/13/2020 17:13:55 MainProcess MainThread queue_manager add_queue DEBUG QueueManager added: (name: 'extract0_mask_0_in')
10/13/2020 17:13:55 MainProcess MainThread queue_manager get_queue DEBUG QueueManager getting: 'extract0_mask_0_in'
10/13/2020 17:13:55 MainProcess MainThread queue_manager get_queue DEBUG QueueManager got: 'extract0_mask_0_in'
10/13/2020 17:13:55 MainProcess MainThread queue_manager add_queue DEBUG QueueManager adding: (name: 'extract0_mask_1_in', maxsize: 1)
10/13/2020 17:13:55 MainProcess MainThread queue_manager add_queue DEBUG QueueManager added: (name: 'extract0_mask_1_in')
10/13/2020 17:13:55 MainProcess MainThread queue_manager get_queue DEBUG QueueManager getting: 'extract0_mask_1_in'
10/13/2020 17:13:55 MainProcess MainThread queue_manager get_queue DEBUG QueueManager got: 'extract0_mask_1_in'
10/13/2020 17:13:55 MainProcess MainThread queue_manager add_queue DEBUG QueueManager adding: (name: 'extract0_mask_1_out', maxsize: 1)
10/13/2020 17:13:55 MainProcess MainThread queue_manager add_queue DEBUG QueueManager added: (name: 'extract0_mask_1_out')
10/13/2020 17:13:55 MainProcess MainThread queue_manager get_queue DEBUG QueueManager getting: 'extract0_mask_1_out'
10/13/2020 17:13:55 MainProcess MainThread queue_manager get_queue DEBUG QueueManager got: 'extract0_mask_1_out'
10/13/2020 17:13:55 MainProcess MainThread pipeline _add_queues DEBUG Queues: {'extract0_detect_in': <queue.Queue object at 0x000002686E974AC8>, 'extract0_align_in': <queue.Queue object at 0x000002686E981710>, 'extract0_mask_0_in': <queue.Queue object at 0x000002686E981BA8>, 'extract0_mask_1_in': <queue.Queue object at 0x000002686E981C88>, 'extract0_mask_1_out': <queue.Queue object at 0x000002686E981D68>}
10/13/2020 17:13:55 MainProcess MainThread pipeline __init__ DEBUG Initialized Extractor
10/13/2020 17:13:55 MainProcess MainThread extract __init__ DEBUG Initialized Extract
10/13/2020 17:13:55 MainProcess MainThread extract process INFO Starting, this may take a while...
10/13/2020 17:13:55 MainProcess MainThread extract _threaded_redirector DEBUG Threading task: (Task: 'load')
10/13/2020 17:13:55 MainProcess MainThread multithreading __init__ DEBUG Initializing MultiThread: (target: '_load', thread_count: 1)
10/13/2020 17:13:55 MainProcess MainThread multithreading __init__ DEBUG Initialized MultiThread: '_load'
10/13/2020 17:13:55 MainProcess MainThread multithreading start DEBUG Starting thread(s): '_load'
10/13/2020 17:13:55 MainProcess MainThread multithreading start DEBUG Starting thread 1 of 1: '_load_0'
10/13/2020 17:13:55 MainProcess _load_0 extract _load DEBUG Load Images: Start
10/13/2020 17:13:55 MainProcess _load_0 image load DEBUG Initializing Load Generator
10/13/2020 17:13:55 MainProcess _load_0 image _set_thread DEBUG Setting thread
10/13/2020 17:13:55 MainProcess _load_0 multithreading __init__ DEBUG Initializing MultiThread: (target: 'ImagesLoader', thread_count: 1)
10/13/2020 17:13:55 MainProcess _load_0 multithreading __init__ DEBUG Initialized MultiThread: 'ImagesLoader'
10/13/2020 17:13:55 MainProcess _load_0 image _set_thread DEBUG Set thread: <lib.multithreading.MultiThread object at 0x000002686E981F60>
10/13/2020 17:13:55 MainProcess _load_0 multithreading start DEBUG Starting thread(s): 'ImagesLoader'
10/13/2020 17:13:55 MainProcess _load_0 multithreading start DEBUG Starting thread 1 of 1: 'ImagesLoader_0'
10/13/2020 17:13:55 MainProcess MainThread multithreading start DEBUG Started all threads '_load': 1
10/13/2020 17:13:55 MainProcess MainThread image __init__ DEBUG Initializing ImagesSaver: (path: C:\Users\Gaël\Documents\faceswap-master\extract, queue_size: 8, as_bytes: True)
10/13/2020 17:13:55 MainProcess MainThread image __init__ DEBUG Initializing ImagesSaver: (path: C:\Users\Gaël\Documents\faceswap-master\extract, queue_size: 8, args: None)
10/13/2020 17:13:55 MainProcess ImagesLoader_0 image _process DEBUG Load iterator: <bound method ImagesLoader._from_video of <lib.image.ImagesLoader object at 0x000002686E5A7780>>
10/13/2020 17:13:55 MainProcess ImagesLoader_0 image _from_video DEBUG Loading frames from video: 'C:\Users\Gaël\Documents\faceswap-master\src\720P_1500K_174908741.mp4'
10/13/2020 17:13:55 MainProcess _load_0 multithreading start DEBUG Started all threads 'ImagesLoader': 1
10/13/2020 17:13:55 MainProcess MainThread queue_manager get_queue DEBUG QueueManager getting: 'ImagesSaver'
10/13/2020 17:13:55 MainProcess MainThread queue_manager add_queue DEBUG QueueManager adding: (name: 'ImagesSaver', maxsize: 8)
10/13/2020 17:13:55 MainProcess MainThread queue_manager add_queue DEBUG QueueManager added: (name: 'ImagesSaver')
10/13/2020 17:13:55 MainProcess MainThread queue_manager get_queue DEBUG QueueManager got: 'ImagesSaver'
10/13/2020 17:13:55 MainProcess MainThread pipeline _launch_plugin DEBUG Launching detect plugin
10/13/2020 17:13:55 MainProcess MainThread pipeline _launch_plugin DEBUG in_qname: extract0_detect_in, out_qname: extract0_align_in
10/13/2020 17:13:55 MainProcess MainThread _base initialize DEBUG initialize Detect: (args: (), kwargs: {'in_queue': <queue.Queue object at 0x000002686E974AC8>, 'out_queue': <queue.Queue object at 0x000002686E981710>})
10/13/2020 17:13:55 MainProcess MainThread _base initialize INFO Initializing cv2-DNN Detector (Detect)...
10/13/2020 17:13:55 MainProcess MainThread queue_manager get_queue DEBUG QueueManager getting: 'detect0_predict_cv2-dnn_detector'
10/13/2020 17:13:55 MainProcess MainThread queue_manager add_queue DEBUG QueueManager adding: (name: 'detect0_predict_cv2-dnn_detector', maxsize: 1)
10/13/2020 17:13:55 MainProcess MainThread queue_manager add_queue DEBUG QueueManager added: (name: 'detect0_predict_cv2-dnn_detector')
10/13/2020 17:13:55 MainProcess MainThread queue_manager get_queue DEBUG QueueManager got: 'detect0_predict_cv2-dnn_detector'
10/13/2020 17:13:55 MainProcess MainThread queue_manager get_queue DEBUG QueueManager getting: 'detect0_post_cv2-dnn_detector'
10/13/2020 17:13:55 MainProcess MainThread queue_manager add_queue DEBUG QueueManager adding: (name: 'detect0_post_cv2-dnn_detector', maxsize: 1)
10/13/2020 17:13:55 MainProcess MainThread queue_manager add_queue DEBUG QueueManager added: (name: 'detect0_post_cv2-dnn_detector')
10/13/2020 17:13:55 MainProcess MainThread queue_manager get_queue DEBUG QueueManager got: 'detect0_post_cv2-dnn_detector'
10/13/2020 17:13:55 MainProcess MainThread _base _compile_threads DEBUG Compiling detect threads
10/13/2020 17:13:55 MainProcess MainThread _base _add_thread DEBUG Adding thread: (name: detect_cv2-dnn_detector_input, function: <bound method Detect.process_input of <plugins.extract.detect.cv2_dnn.Detect object at 0x000002685AEA32E8>>, in_queue: <queue.Queue object at 0x000002686E974AC8>, out_queue: <queue.Queue object at 0x000002686E974D30>)
10/13/2020 17:13:55 MainProcess MainThread multithreading __init__ DEBUG Initializing MultiThread: (target: 'detect_cv2-dnn_detector_input', thread_count: 1)
10/13/2020 17:13:55 MainProcess MainThread multithreading __init__ DEBUG Initialized MultiThread: 'detect_cv2-dnn_detector_input'
10/13/2020 17:13:55 MainProcess MainThread _base _add_thread DEBUG Added thread: detect_cv2-dnn_detector_input
10/13/2020 17:13:55 MainProcess MainThread _base _add_thread DEBUG Adding thread: (name: detect_cv2-dnn_detector_predict, function: <bound method Detector._predict of <plugins.extract.detect.cv2_dnn.Detect object at 0x000002685AEA32E8>>, in_queue: <queue.Queue object at 0x000002686E974D30>, out_queue: <queue.Queue object at 0x000002686E974B70>)
10/13/2020 17:13:55 MainProcess MainThread multithreading __init__ DEBUG Initializing MultiThread: (target: 'detect_cv2-dnn_detector_predict', thread_count: 1)
10/13/2020 17:13:55 MainProcess MainThread multithreading __init__ DEBUG Initialized MultiThread: 'detect_cv2-dnn_detector_predict'
10/13/2020 17:13:55 MainProcess MainThread _base _add_thread DEBUG Added thread: detect_cv2-dnn_detector_predict
10/13/2020 17:13:55 MainProcess MainThread _base _add_thread DEBUG Adding thread: (name: detect_cv2-dnn_detector_output, function: <bound method Detect.process_output of <plugins.extract.detect.cv2_dnn.Detect object at 0x000002685AEA32E8>>, in_queue: <queue.Queue object at 0x000002686E974B70>, out_queue: <queue.Queue object at 0x000002686E981710>)
10/13/2020 17:13:55 MainProcess MainThread multithreading __init__ DEBUG Initializing MultiThread: (target: 'detect_cv2-dnn_detector_output', thread_count: 1)
10/13/2020 17:13:55 MainProcess MainThread multithreading __init__ DEBUG Initialized MultiThread: 'detect_cv2-dnn_detector_output'
10/13/2020 17:13:55 MainProcess MainThread _base _add_thread DEBUG Added thread: detect_cv2-dnn_detector_output
10/13/2020 17:13:55 MainProcess MainThread _base _compile_threads DEBUG Compiled detect threads: [<lib.multithreading.MultiThread object at 0x000002686E974EB8>, <lib.multithreading.MultiThread object at 0x000002686E974A20>, <lib.multithreading.MultiThread object at 0x000002686E974E48>]
Traceback (most recent call last):
File "C:\Users\Gaël\Documents\faceswap-master\lib\cli\launcher.py", line 182, in execute_script
process.process()
File "C:\Users\Gaël\Documents\faceswap-master\scripts\extract.py", line 117, in process
self._run_extraction()
File "C:\Users\Gaël\Documents\faceswap-master\scripts\extract.py", line 203, in _run_extraction
self._extractor.launch()
File "C:\Users\Gaël\Documents\faceswap-master\plugins\extract\pipeline.py", line 207, in launch
self._launch_plugin(phase)
File "C:\Users\Gaël\Documents\faceswap-master\plugins\extract\pipeline.py", line 560, in _launch_plugin
plugin.initialize(**kwargs)
File "C:\Users\Gaël\Documents\faceswap-master\plugins\extract\_base.py", line 344, in initialize
self.init_model()
File "C:\Users\Gaël\Documents\faceswap-master\plugins\extract\detect\cv2_dnn.py", line 28, in init_model
self.model_path[0])
cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-52oirelq\opencv\modules\dnn\src\caffe\caffe_io.cpp:1121: error: (-2:Unspecified error) FAILED: fs.is_open(). Can't open "C:\Users\Gaël\Documents\faceswap-master\plugins\extract\detect\.cache\resnet_ssd_v1.prototext" in function 'cv::dnn::ReadProtoFromTextFile'
============ System Information ============
encoding: cp1252
git_branch: Not Found
git_commits: Not Found
gpu_cuda: No global version found
gpu_cudnn: No global version found
gpu_devices:
gpu_devices_active:
gpu_driver: No Nvidia driver found
gpu_vram:
os_machine: AMD64
os_platform: Windows-10-10.0.18362-SP0
os_release: 10
py_command: C:\Users\Gaël\Documents\faceswap-master\faceswap.py extract -i C:/Users/Gaël/Documents/faceswap-master/src/720P_1500K_174908741.mp4 -o C:/Users/Gaël/Documents/faceswap-master/extract -D cv2-dnn -A cv2-dnn -nm none -min 0 -l 0.4 -een 1 -sz 256 -si 0 -L INFO -gui
py_conda_version: N/A
py_implementation: CPython
py_version: 3.7.1
py_virtual_env: False
sys_cores: 4
sys_processor: Intel64 Family 6 Model 142 Stepping 9, GenuineIntel
sys_ram: Total: 8057MB, Available: 2487MB, Used: 5570MB, Free: 2487MB
=============== Pip Packages ===============
absl-py==0.7.1
aiohttp==1.0.5
altgraph==0.16.1
appdirs==1.4.3
astor==0.8.0
astunparse==1.6.3
async-timeout==3.0.1
attrs==18.2.0
beautifulsoup4==4.7.1
black==18.9b0
bs4==0.0.1
cachetools==4.1.1
certifi==2018.11.29
chardet==3.0.4
Click==7.0
cycler==0.10.0
discord==0.0.2
discord.py==0.16.12
fastcluster==1.1.26
ffmpy==0.2.3
future==0.17.1
gast==0.3.3
google-auth==1.22.1
google-auth-oauthlib==0.4.1
google-pasta==0.2.0
grpcio==1.23.0
h5py==2.10.0
idna==2.8
imageio==2.9.0
imageio-ffmpeg==0.4.2
imgurpython==1.1.7
joblib==0.17.0
Keras==2.2.5
Keras-Applications==1.0.8
Keras-Preprocessing==1.1.0
keyboard==0.13.4
kiwisolver==1.0.1
macholib==1.11
Markdown==3.1.1
matplotlib==3.2.2
multidict==4.5.2
numpy==1.18.5
oauthlib==3.1.0
opencv-python==4.4.0.44
opt-einsum==3.3.0
pathlib==1.0.1
pefile==2018.8.8
Pillow==7.2.0
praw==6.1.1
prawcore==1.0.1
protobuf==3.9.1
psutil==5.7.2
pyasn1==0.4.8
pyasn1-modules==0.2.8
PyAutoGUI==0.9.38
pycodestyle==2.4.0
pygame==1.9.4
PyInstaller==3.4
PyMsgBox==1.0.6
pynvml==8.0.4
pyparsing==2.3.0
PyScreeze==0.1.18
pytesseract==0.2.6
python-dateutil==2.7.5
PyTweening==1.0.3
pywin32==228
pywin32-ctypes==0.2.0
PyYAML==5.1.2
requests==2.21.0
requests-oauthlib==1.3.0
rsa==4.6
scikit-learn==0.23.2
scipy==1.3.1
selenium==3.141.0
six==1.15.0
soupsieve==1.8
tensorboard==2.2.2
tensorboard-plugin-wit==1.7.0
tensorflow==2.2.1
tensorflow-estimator==2.2.0
termcolor==1.1.0
threadpoolctl==2.1.0
toml==0.10.0
torch==1.0.1
torchvision==0.3.0
tqdm==4.50.2
update-checker==0.16
urllib3==1.24.1
websocket-client==0.55.0
websockets==3.4
Werkzeug==0.15.5
wrapt==1.11.2
================= Configs ==================
--------- .faceswap ---------
backend: cpu
--------- convert.ini ---------
[color.color_transfer]
clip: True
preserve_paper: True
[color.manual_balance]
colorspace: HSV
balance_1: 0.0
balance_2: 0.0
balance_3: 0.0
contrast: 0.0
brightness: 0.0
[color.match_hist]
threshold: 99.0
[mask.box_blend]
type: gaussian
distance: 11.0
radius: 5.0
passes: 1
[mask.mask_blend]
type: normalized
kernel_size: 3
passes: 4
threshold: 4
erosion: 0.0
[scaling.sharpen]
method: unsharp_mask
amount: 150
radius: 0.3
threshold: 5.0
[writer.ffmpeg]
container: mp4
codec: libx264
crf: 23
preset: medium
tune: none
profile: auto
level: auto
skip_mux: False
[writer.gif]
fps: 25
loop: 0
palettesize: 256
subrectangles: False
[writer.opencv]
format: png
draw_transparent: False
jpg_quality: 75
png_compress_level: 3
[writer.pillow]
format: png
draw_transparent: False
optimize: False
gif_interlace: True
jpg_quality: 75
png_compress_level: 3
tif_compression: tiff_deflate
--------- extract.ini ---------
[global]
allow_growth: False
[align.fan]
batch-size: 12
[detect.cv2_dnn]
confidence: 50
[detect.mtcnn]
minsize: 20
threshold_1: 0.6
threshold_2: 0.7
threshold_3: 0.7
scalefactor: 0.709
batch-size: 8
[detect.s3fd]
confidence: 70
batch-size: 4
[mask.unet_dfl]
batch-size: 8
[mask.vgg_clear]
batch-size: 6
[mask.vgg_obstructed]
batch-size: 2
--------- gui.ini ---------
[global]
fullscreen: False
tab: extract
options_panel_width: 30
console_panel_height: 20
icon_size: 14
font: default
font_size: 9
autosave_last_session: prompt
timeout: 120
auto_load_model_stats: True
--------- train.ini ---------
[global]
coverage: 68.75
icnr_init: False
conv_aware_init: False
optimizer: adam
learning_rate: 5e-05
reflect_padding: False
allow_growth: False
mixed_precision: False
convert_batchsize: 16
[global.loss]
loss_function: ssim
mask_loss_function: mse
l2_reg_term: 100
eye_multiplier: 3
mouth_multiplier: 2
penalized_mask_loss: True
mask_type: extended
mask_blur_kernel: 3
mask_threshold: 4
learn_mask: False
[model.dfl_h128]
lowmem: False
[model.dfl_sae]
input_size: 128
clipnorm: True
architecture: df
autoencoder_dims: 0
encoder_dims: 42
decoder_dims: 21
multiscale_decoder: False
[model.dlight]
features: best
details: good
output_size: 256
[model.original]
lowmem: False
[model.realface]
input_size: 64
output_size: 128
dense_nodes: 1536
complexity_encoder: 128
complexity_decoder: 512
[model.unbalanced]
input_size: 128
lowmem: False
clipnorm: True
nodes: 1024
complexity_encoder: 128
complexity_decoder_a: 384
complexity_decoder_b: 512
[model.villain]
lowmem: False
[trainer.original]
preview_images: 14
zoom_amount: 5
rotation_range: 10
shift_range: 5
flip_chance: 50
disable_warp: False
color_lightness: 30
color_ab: 8
color_clahe_chance: 50
color_clahe_max_size: 4
Any help is welcome ^^