Package: singan-seg-polyp
singan-seg-polypIf you want to train your own SinGAN-Seg models, please follow the repository here:https://github.com/vlbthambawita/singan-segInstall pip packagepipinstallsingan-seg-polypImport required packagesfromsingan_seg_polypimportgenerate_data,prepare_requirementsPrepare checkpointsHelponfunctionprepare_checkpointsinmodulesingan_seg_polyp.prepare_requirements:prepare_checkpoints(path_to_checkpoints:str,link_keys=['link1','link2','link3','link4'],real_data=True,*args,**kwargs)->str'''The main function preparing checkpoints for pre-trained SinGANs of Polyp images.Parameters-----------path_to_checkpoints: strA directory path to download checkpoints.link_keys: listA list of link keys: link1, link2, link3, link4. One or multiple link keys can be put in this list.real_data: boolIf True, the real images and masks used to train SinGANs will be downloaded to the checkpoint directory.Return------checkpoint_paths_list, real_image_mask_pair_listA sorted list of paths to downloaded checkpoints.A sorted (image_path, mask_path) tuple list.'''out_paths=prepare_requirements.prepare_checkpoints("./singan_polyp_checkpoints",link_keys=["link1","link2","link3","link4"])Parameterspath_to_checkpoints -- A path to save checkpoints. The prepare_checkpoints() function checks the availability of pre-downloaded checkpoints. So, the use can run the save command twice without any downlaod overhead.link_keys -- A list of pre-defined keys to download links. To download the full checkpoint list, use link_keys=["link1", "link2", "link3", "link4"]. If the user needs only a half of check points, then, the user can use only a half of link_keys. For example, link_keys= ["link1", "link2"]real_data -- If this is True, real images and masks used to train SinGANs will be downloaded into the checkpoint folder.ReturnThis function returns a list of paths to all downloaded checkpoints to use with other functions of singan_polyp_aug. If the all checkpoints are used, then the function returns 1000 different sinGAN checkpoint paths which are dirrecting to pre-trained SinGAN checkpoints of the 1000 polyp images introduced in Hyper-kvasir dataset.Generate synthetic polyps and corresponding maskgenerate_data.generate_from_single_checkpoint(out_dir:str,checkpoint_path:str,num_samples:int=1,gen_start_scale:int=5,mask_post_processing:bool=True)->None:''' A function to generate synthetic polyp and correspondign mask from a given checkpoint path.Parameters----------out_dir: strA path to save output data.checkpoint_path: strA path to a downloaded checkpoint. To get paths, you have to run prepare_requirements.prepare_checkpoints() function.num_samples: intNumber of random samples to generate from the given checkpoint. Default=1.gen_start_scale: intPredefined scales used in SinGAN training. You can use values between 0-9. Value 0 generates more random samples and value 9 generate sampels which arevery close to the training image.mask_post_processing: boolWhether the generated mask should be post processed or not. If True, generates mask is cleaned to have only 0 and 255.Returns------NoneThis function does not have a return.'''generate_data.generate_from_multiple_checkpoints(out_dir:str,checkpoint_paths:list,*args,**kwargs)->None:''' A function to generate synthetic polyp and correspondign mask from a given list of checkpoint paths.Parameters----------out_dir: strA path to save output data.checkpoint_paths: listA path list to downloaded checkpoints. To get paths, you have to run prepare_requirements.prepare_checkpoints() function.num_samples: intNumber of random samples to generate from the given checkpoint. Default=1.gen_start_scale: intPredefined scales used in SinGAN training. You can use values between 0-9. Value 0 generates more random samples and value 9 generate sampels which arevery close to the training image.mask_post_processing: boolWhether the generated mask should be post processed or not. If True, generates mask is cleaned to have only 0 and 255.Returns------NoneThis function does not have a return.'''generate_data.generate_simple(out_dir:str,chk_dir:str,*args,**kwargs)->None:''' A function to generate synthetic polyp and correspondign mask from all downloaded checkpoint paths.Parameters----------out_dir: strA path to save output data.chk_dir: strThe path to checkpoint directory. If the directory does not have downloaded checkpoints, this function will download them.num_samples: intNumber of random samples to generate from the given checkpoint. Default=1.gen_start_scale: intPredefined scales used in SinGAN training. You can use values between 0-9. Value 0 generates more random samples and value 9 generate sampels which arevery close to the training image.mask_post_processing: boolWhether the generated mask should be post processed or not. If True, generates mask is cleaned to have only 0 and 255.Returns------NoneThis function does not have a return.'''Transfering style from real to fakehelp(style_transfer.transfer_style)transfer_style(content_img_path:str,style_img_path:str,num_epochs:int,content_weight:int,style_weight:int,device:torch.device,vgg_model:str,verbose=False,tqdm_position=0,tqdm_leave=True,*args,**kwargs)->'PIL.Image'Trnsferingstylefromasourceimagetoatargetimage.Parameters==========content_img_path:strApathtoanimagetowhichthestyleisgoingtobetransfered.style_img:strApathtoanimagewhichhastherequiredstyletobetransferred.num_epochs:intNumberofepochtoiteratefortransferingstyletocontentimage.content_weight:intWeighttokeepthecontentofthedestinationimage.style_weight:intWeighttotransferstylefromthesourceimage.device:torch.deviceTorchdeviceobject,either"CPU"or"CUDA".ReferPytochdocumentationformoredetials.vgg_model:strAmodeltoextractfeatures.verbose:boolIftrue,lossvalueswillbeprintedtostdout.Return=======PIL.ImageStyletransferredimage.Citation:@article{thambawita2021singan,
  title={SinGAN-Seg: Synthetic Training Data Generation for Medical Image Segmentation},
  author={Thambawita, Vajira and Salehi, Pegah and Sheshkal, Sajad Amouei and Hicks, Steven A and Hammer, Hugo L and Parasa, Sravanthi and de Lange, Thomas and Halvorsen, P{\aa}l and Riegler, Michael A},
  journal={arXiv preprint arXiv:2107.00471},
  year={2021}}References:@article{cite-key,
	da = {2020/08/28},
	date-added = {2021-03-27 01:08:18 +0100},
	date-modified = {2021-03-27 01:08:18 +0100},
	doi = {10.1038/s41597-020-00622-y},
	id = {Borgli2020},
	isbn = {2052-4463},
	journal = {Scientific Data},
	number = {1},
	pages = {283},
	title = {HyperKvasir, a comprehensive multi-class image and video dataset for gastrointestinal endoscopy},
	ty = {JOUR},
	url = {https://doi.org/10.1038/s41597-020-00622-y},
	volume = {7},
	year = {2020},
	Bdsk-Url-1 = {https://doi.org/10.1038/s41597-020-00622-y}}

@inproceedings{shaham2019singan,
  title={Singan: Learning a generative model from a single natural image},
  author={Shaham, Tamar Rott and Dekel, Tali and Michaeli, Tomer},
  booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
  pages={4570--4580},
  year={2019}
}Contacts:vajira@simula.noormichael@simula.no