Find Jobs
Hire Freelancers

Golang, image manipulation, postgresql

$250-750 AUD

Completed
Posted about 4 years ago

$250-750 AUD

Paid on delivery
This is a teledentistry program. Patients send us images, our software finds the area of interest. You will be writing the program (/usr/local/bin/zoomer) that digitally zooms in on the area of interest in the picture and stores it in an s3 bucket. There will be a configuration file (in the home directory of the user the program runs as) which contains the s3 path to put the images into. This configuration file also has database credentials and a "context percentage" parameter and a "dimming percentage" parameter. You will use viper to read it. There will also be AWS credentials in the user's home directory so that you can use the ordinary AWS golang APIs to access files from s3. The program you will be writing can be invoked in one of three ways: /usr/local/bin/zoomer /usr/local/bin/zoomer -a /usr/local/bin/zoomer -i {image_id} If it is the first version (with no arguments given), then it begins a transaction and runs select image_id from images_received where consensus_created and not cropped_version_created order by random() for update skip locked and iterates through that list of images, stopping after 59 seconds have elapsed. If it is the second version (with -a) then it starts a transaction and runs the same query but doesn't stop after 59 seconds -- it just keeps going until it is finished. If it is the third version, it just operates on that one image id. (But will still need to start a transaction and do a Select ... For Update... ) If that image_id appears in the Consensus_Mirrorless table, then the final image is the same as the source image. If the image_id is not in the Consensus_Mirrorless table, it will be in the Consensus_Mirror_positions table, where the top_left, left_edge, bottom_edge and right_edge columns will tell you the rectangle that you are supposed to be extracting. The Images_Received table has a column s3_path; that's where you can get the original image. The config file has a "cropped_images_bucket" -- you will be creating a file s3://$cropped_images_bucket/$image_id The config file has a "context percentage" parameter. If the context percentage parameter is 0, then you simply crop the original image (top_left, left_edge, bottom_edge, right_edge) and put it into s3://$cropped_images_bucket/$image_id If the context percentage parameter is not zero, then you are going to have a slightly larger image (the width will be Width * (1 + 2 * Context_Percentage) pixels wide and height will be Height * ( 1 + 2 * Context_Percentage) high. Suppose (top_left, left_edge, bottom_edge, right_edge) = (100, 100, 200, 200) and context percentage is 25. Then the image you create will be 150x150; it will basically be the original image from (75, 75) to (225, 225), but any pixels with 25 pixels of the edge will be dimmed. See the attached image for the kind of effect we are trying to get, but keep in mind I just did it by hand so the pixel counts aren't quite right. You dim pixels by the "dimming percentage" from the config file. If the context border would exceed the dimension of the original image, then the context border shrinks down to fit. After the image has been created, it updates the Images_Received table and sets cropped_version_created = true, cropped_version_creation_timestamp = timenow(), cropped_version_s3_path = s3://$cropped_images_bucket/$image_id At the program's completion, it commits the transaction. SQL table samples... create table images_received ( image_id uuid primary key, s3_path varchar not null, -- several columns hidden here because they aren't relevant cropped_version_created boolean default false, cropped_version_creation_timestamp timestamp, cropped_version_s3_path varchar ); create table consensus_mirror_positions ( image_id uuid references images_received, top_edge int, left_edge int, bottom_edge int, right_edge int, width int, height int ); create table consensus_mirrorless ( image_id uuid references images_received );
Project ID: 24657441

About the project

7 proposals
Remote project
Active 4 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
Awarded to:
User Avatar
Hi, I can develop the program using pretty standard set of libs/tools available with Go on Linux and AWS SDK for Go. Image and Draw programs can be used to achieve the required image shape/features. DB access can also be done using standard sql package. Few questions: Is a Linux machine already setup with Go and being used for other purposes? Or has to be setup from scratch? Is AWS ADK for Go already installed on machine with AWS profile already set? Is database already setup with relevant tables? Do you want to schedule any of the scripts? Or will it only be run on demand as explained? Do you need some type of logging or program output especially for the minute long or indefinite execution? In this statement "If the context border would exceed the dimension of the original image, then the context border shrinks down to fit.", by shrink you mean the border width remains same and it just shifts inside the boundary of original image? What will happen to the image currently being processed (but execution/transaction not finished yet) when 59 seconds limit terminate the script? Rollback everything for current iteration? Please reply with your answers and we can go from there. Regards Asif
$550 AUD in 4 days
5.0 (3 reviews)
3.9
3.9
7 freelancers are bidding on average $589 AUD for this job
User Avatar
● I have been in software development for 10+ years. ● I am a Golang developer with 5+ years of experience. ● I was responsible for many projects which is based on the microservice architecture and the design and development of service mesh. ● I am very familiar with the design of api gateway. ● I have developed many microservices which are based on grpc or http protocol. ● I am good at docker and kubernetes technology, and I have been responsible for company's containerization pre-research, solution design and practices. ● I use Git to manage project code and I like to research Golang open source code. ● I worked on the following technologies - Golang, Python, gRPC, Docker, Kubernetes, Git ,GORM, Nginx, MongoDB, Kafka, PostgreSQL, MySQL and so on.
$650 AUD in 7 days
4.9 (18 reviews)
5.7
5.7
User Avatar
Nice to meet you I am an Amazon Cloud Architect for the web infrastructure serving 90 million page impressions and 12 TB Internet traffic per month. The AWS services I use are EC2, ELB, MySQL RDS, VPC, CloudFront, ElastiCache, CloudWatch, CloudFormation, OpsWorks, ElasticBeanstalk, CodeDeploy, S3, SES, SQS and SNS. I have 20 years of Linux SysAdmin experience. I currently use Apache, Nginx, Ldirectord, MySQL, Perl, PHP, Memcached, Sphinx, Bind, Typo3, WordPress, Send-mail, Postfix, NFS, Samba, Snort, Vsftpd, aide, Nagios, Cacti, Puppet and a bunch of other traditional Linux software. I am good at amazon-web-services,golang,image-processing,postgresql If you’re looking for a developer that’s truly an expert, driven by passion, not afraid to take on a challenge, and will be there with you every step of the way then look no further as I’m your guy.
$392 AUD in 5 days
4.1 (9 reviews)
4.9
4.9
User Avatar
Hey Greg. I can work on your project to create the program (/usr/local/bin/zoomer) that digitally zooms in on the area of interest in the picture and stores it in an s3 bucket based on your requirements, including using context percentage and dimming percentage to generate the images from source tables to the output bucket.
$750 AUD in 7 days
5.0 (1 review)
3.8
3.8
User Avatar
Hi, I am golang developer as well as I hav e knowledge of image processing. I could solve your problem . Can we have detail discussion?
$278 AUD in 7 days
2.8 (1 review)
1.9
1.9
User Avatar
AWS EC2 S3,Lambda expert Developer ready to ROCK! Dear Concern, I am writing to apply for the position, as advertised on freelancing website. My nearly 9 years of experience in creating custom automation robots similarly to uipath to achieve Robotic Process automation includes responsibilities such as Project Management, Software Development, Coding Requirement and Gathering. I am currently working as the Team Lead. My key skills include C#,ASp.net,Elastic Search,Rpa,java,python,Docker,sql,mysql,html,php,javascript,Apis,jquery,uipath,opencv,automation,node.js,powershell,shellscript Have good Experience in automating web ui elements using selenium web driver. This role requires me to plan project activities by scoping, estimation, tracking, risk management, delivery management & post implementation support; document, track, communicate bugs, enhancements, analysis and unresolved problems; liable for managing full end-to-end process for the user acceptance testing phases of the project, executing testing & working within deadlines. I bring to your company my years of relevant experience and my drive for results and positive outcomes. I am prepared for the next challenge in my career and look forward to hearing from you. Thank you for your time and consideration.
$750 AUD in 7 days
0.0 (0 reviews)
0.0
0.0
User Avatar
Hello Carefully read your project description and realized that I can afford it. I am a senior Web developer with over 3 years of experience in GoLang, PostgreSQL and Amazon Web Services. I have ever worked on several projects with GoLand and PostgreSQL so i have rich experience in them. Image processing with Golang is not an easy job but i am sure that I can complete your project perfectly in a short time. Please message me and let me work on your project. Best Regards.
$750 AUD in 7 days
0.0 (0 reviews)
0.0
0.0

About the client

Flag of AUSTRALIA
Beecroft, Australia
5.0
46
Payment method verified
Member since Aug 13, 2013

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.